codeforces 855 A题 C语言

您在街上走着,听到了一种声音。声音由字符串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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值