#include<iostream>
#include<cstdio>
#include<cstring>
#include<stdlib.h>
using namespace std;
int main()
{
int N,M;
cin>>N>>M;
char stack[100];
for(int i=0;i<N;i++)
{
scanf("%s", stack);
int l = 0, len = strlen(stack), flag = 1;
for(int j=0; j<len; j++)
{
if(stack[j]=='S')
l++;
else
l--;
if(l < 0 || l > M)
{
cout<<"NO"<<endl;
flag = 0;
break;
}
}
if(flag == 1){
if(l == 0)
cout<<"YES"<<endl;
else
cout<<"NO"<<endl;
}
}
}
7-1 堆栈操作合法性 (20分)
最新推荐文章于 2021-10-03 20:46:35 发布
该博客主要探讨了一个C++程序,用于模拟字符栈并检查输入字符串中括号的平衡性。程序通过读取一系列'S'(压栈)和'O'(出栈)操作,判断在不超过给定限制M的情况下,括号是否正确配对。如果栈的深度在任何时候超过限制或最终不为0,则输出'NO',否则根据栈的状态输出'YES'或'NO'。
摘要由CSDN通过智能技术生成