习题3.9 堆栈操作合法性 (20分)
AC代码
#include <iostream>
#include <cstdio>
#include <stack>
#include <queue>
#include <map>
#include <cstring>
#include <vector>
#include <algorithm>
#include <set>
using namespace std;
int n, m, len;
char s[210];
void solve(){
int cnt = 0;
for (int i = 0; i < len; i++){
if (s[i] == 'S') cnt++;
else if (s[i] == 'X') cnt--;
if (cnt > m || cnt < 0){
printf("NO\n");
return;
}
}
if (cnt != 0){
printf("NO\n");
return;
}
printf("YES\n");
}
int main(){
scanf("%d%d", &n, &m);
for (int i = 0; i < n; i++){
scanf("%s", s);
len = int(strlen(s));
solve();
}
return 0;
}
来源:CSDN
作者:Supremebeast3_
链接:https://blog.csdn.net/weixin_43359312/article/details/103570963