习题3.9 堆栈操作合法性 (20分)

元气小坏坏 提交于 2019-12-16 23:14:53

习题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;
}
标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!