天天看点

pta 习题集5-6 堆栈操作合法性

输入格式:

输出格式:

输入样例:

4 10
SSSXXSXXSX
SSSXXSXXS
SSSSSSSSSSXSSXXXXXXXXXXX
SSSXXSXXX
           

输出样例:

YES
NO
NO
NO           
#include <iostream>
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <math.h>
#include <string>
#include <map>

using namespace std;
int n,m;
char a[105];
int main()
{
	scanf("%d%d",&n,&m);
	for(int i=1;i<=n;i++)
	{
		scanf("%s",a);
		int ans=1;
		int len=strlen(a);
		int t=0;
		for(int i=0;i<len;i++)
		{
			if(a[i]=='S')
			{
				if(t==m)
				{
					ans=0;
					break;
				}
				else
					t++;
			}
			else
			{
				if(t==0)
				{
					ans=0;
					break;
				}
				else
					t--;
			}

		}
		if(t!=0)
			ans=0;
		if(ans)
			printf("YES\n");
		else
			printf("NO\n");
	}
	return 0;
}