栈合法IO序列

简介: 栈合法IO序列

假设以1和0分别表示入栈和出栈操作。栈的初态和终态均为空,入栈和出栈的操作序列可表示为仅由1和0组成的序列,称可以操作且满足栈终态为空的序列为合法序列,否则称为非法序列。例如10110100就是一个合法序列,而10010110是一个非法序列,因为第2次出栈时栈已空,该操作无法进行。 请编写程序判断给定的操作序列是否合法。


输入格式:

输入为2行,第1行为一个不超过100的正整数n,表示操作序列中操作的个数,第2行为给定的操作序列,为空格间隔的n个整数,每个整数均为0或1。


输出格式:

输出为一个整数,若输入序列合法,则输出1,若输入序列不合法,则输出0。


样例1">输入样例1:

1. 8
2. 1 0 1 1 0 1 0 0

结尾无空行


输出样例1:

1

结尾无空行


输入样例2:

1. 8
2. 1 0 0 1 0 1 1 0

结尾无空行


输出样例2:

0

结尾无空行


#include<bits/stdc++.h>
using namespace std;
int main()
{
    int k=0,t=0,n,x;
    cin>>n;
    for(int i=0;i<n;i++)
    {
        cin>>x;
        if(x&1) k++;//入栈
        else k--;//出栈
        if(k<0) t=1;//标记
    }
    if(!k&&!t) cout<<"1";
    else cout<<"0";
    return 0;
}


目录
相关文章
|
2月前
|
Go C++
【力扣】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
【2月更文挑战第18天】2696. 删除子串后的字符串最小长度(模拟 栈 C++ Go实现栈)
34 6
|
4月前
|
Java
栈的简单应用(利用Stack进行四则混合运算)(JAVA)
中缀表达式转后缀表达式图解, 代码实现过程, 完整代码, 利用后缀表达式求值, 完整代码
46 0
|
5月前
|
算法 安全 Java
【算法训练-栈 一】【结构特性】有效的括号、最小栈(包含Min函数的栈)
【算法训练-栈 一】【结构特性】有效的括号、最小栈(包含Min函数的栈)
35 0
|
2月前
|
Java
java中判断数组中元素出现的次数
java中判断数组中元素出现的次数
13 0
|
5月前
|
Java
【java作业2】统计字符串中连续相同最大个数 & 连续相同数组元素
一、统计字符串中连续相同最大个数 问题描述 编写方法实现统计一个字符串中连续相同的字符中最长的字符及其长度;然后编写程序测试该方法;
52 0
【java作业2】统计字符串中连续相同最大个数 & 连续相同数组元素
|
9月前
|
Java
java中两个数交换的4种方式
java中两个数交换的4种方式
162 0
|
9月前
|
Java
java栈-点击消除相邻重复的字母
给出一个字符串,每次“点击”,可以把字符串中相邻两个相同字母消除,例如,字符串"abbc"点击后可以生成"ac"。 但相同而不相邻、不相同的相邻字母都是不可以被消除的。如果一直点击,字符串的最终形态是什么?
66 0
Zp
|
Java 数据库
JAVA判断奇偶数
JAVA判断奇偶数
Zp
213 0
力扣155:最小栈(Java 辅助栈 -> 不使用额外空间)
力扣155:最小栈(Java 辅助栈 -> 不使用额外空间)
122 0
字符串解码(力扣 394)Java栈操作
给定一个经过编码的字符串,返回它解码后的字符串。
112 0