首页 / 题库

P14148 - 判断序列(栈实现)

数据结构入门
通过次数0 提交次数0 内存限制 128MB 时间限制3秒

描述

假设以I和O分别表示栈的入栈和出栈操作(入栈用I表示,出栈用O表示),栈的初始状态为空。已知规定由入栈和出栈操作组成的操作序列仅由I和O组成,又称可以操作的序列为合法序列,否则称为非法序列。现有一个只包含I和O两种字符的序列,请你判断序列是否合法。

如I、IO、III、IOIIOIOO均为合法序列;O、OI、IOO、IOOIOIIO为非法序列。

请你设计一个程序,判断给定的操作序列是否合法。

输入

一行I和O的操作序列,以回车结束输入。只包含I、O两种符号。

输出

一行英文字符:“YES”或“NO”。

样例

  • 复制
  • 复制
  • 复制
  • 复制

提示

【数据范围】

对于30%的数据满足:序列的长度小于等于100;

对于50%的数据满足:序列的长度小于等于1000;

对于100%的数据满足:序列的长度小于等于100000;

【样例1解释】

初始状态下,题目中已说明,栈中没有元素;

第一个字符I读入后,表示进栈一个元素,此时栈中有1个元素;

第二个字符O读入后,表示出栈一个元素,此时栈中没有元素;

第三个字符I读入后,表示进栈一个元素,此时栈中有1个元素;

第四个字符I读入后,表示进栈一个元素,此时栈中有2个元素;

第五个字符O读入后,表示出栈一个元素,此时栈中有1个元素;

第六个字符I读入后,表示进栈一个元素,此时栈中有2个元素;

第七个字符0读入后,表示出栈一个元素,此时栈中有1个元素;

第八个字符0读入后,表示出栈一个元素,此时栈中没有元素;

此时读入结束,栈中没有元素,序列可以操作,故序列为合法序列。

【样例1解释】

初始状态下,栈中没有元素;

第一个字符I读入后,表示进栈一个元素,此时栈中有1个元素;

第二个字符O读入后,表示出栈一个元素,此时栈中没有元素;

第三个字符O读入时,表示出栈一个元素,此时栈中没有元素依然执行出栈,操作不成功,直接报错,返回错误信息。

意见反馈

    最多上传3张图片,格式为JPG、PNG、JPEG,单张不超过5MB

    注册

    发送验证码

    密码必须包含数字、字母和特殊字符

    找回密码

    发送验证码

    密码必须包含数字、字母和特殊字符

    运行 ID:67149

    • 测试点1:Accepted
    • 用时:0 ms
    • 内存:288 kb
    • 测试点2:Accepted
    • 用时:0 ms
    • 内存:288 kb
    输入
    203
    输出
    203

    test

    测评信息

    错误.in文件下载

    错误.out文件下载

    运行 ID:67149

    2019-01-24 15:06:36