您在街上走着,听到了一种声音。声音由字符串s描述,其中包含小写和大写拉丁字符。现在,您想找出这个声音是否是猫的喵声。
要使声音成为喵声,字符串只能包含字母'm','e','o'和'w',可以是大写或小写。还有:
字符串必须以仅由字符'm'或'M'组成的非空序列开头 它必须紧接着是仅由字符'e'或'E'组成的非空序列 它必须紧接着是仅由字符'o'或'O'组成的非空序列 它必须紧接着是仅由字符'w'或'W'组成的非空序列,这个序列结束了字符串,在它之后立即出现字符串结束 例如,字符串"meow","mmmEeOWww","MeOooOw"描述了一种喵声,但字符串"Mweo","MeO","moew","MmEW","meowmeow"则不是。
确定您听到的声音是否是猫的喵声还是其他声音。
输入 输入数据的第一行包含一个整数t(1≤t≤104) - 测试用例的数量。
以下是每个测试用例的描述。
每个测试用例的第一行包含一个整数n(1≤n≤50) - 描述声音的字符串的长度。
每个测试用例的第二行包含一个n个字符的字符串s。描述您听到的声音,该字符串仅包含小写和大写拉丁字母。
输出 对于每个测试用例,单独输出一行:
如果声音是猫的喵声,则输出YES; 否则输出NO。 您可以以任何方式输出YES和NO(例如,字符串yEs,yes,Yes和YES都将被视为肯定响应)。
#include<stdio.h>
#include<string.h>
int main()
{
char s[55];
int t,n,m,flag=0,yy=0,j,a1=0,a2=0,a3=0,b;
scanf("%d\n",&t);
while(t--)
{
scanf("%d\n",&n);
fgets(s, 55, stdin);
flag = 0;
m = 0;
if(s[0]!='m'&&s[0]!='M')
flag=1;
for(int i=0;i<n;i++)
{
if(s[i]!='m'&&s[i]!='M')
{
a1=1;
m=i;
break;
}
}
if(s[m]=='e'||s[m]=='E')
a1=0;
for(int i=m;i<n;i++)
{
if(s[i]!='e'&&s[i]!='E')
{
a2=1;
m=i;
break;
}
}
if(s[m]=='o'||s[m]=='O')
a2=0;
for(int i=m;i<n;i++)
{
if(s[i]!='o'&&s[i]!='O')
{
a3=1;
m=i;
break;
}
}
if(s[m]=='w'||s[m]=='W')
a3=0;
for(int i=m;i<n;i++)
{
if(s[i]!='w'&&s[i]!='W')
{
flag=1;
break;
}
}
if(flag==1||a1==1||a2==1||a3==1)
printf("NO\n");
else if(flag==0)
printf("YES\n");
}
return 0;
}
输入:
7
4
meOw
14
mMmeoOoWWWwwwW
3
mew
7
MmeEeUw
4
MEOW
6
MmyaVW
5
meowA
输出:
YES YES NO NO YES NO NO