请教站外题
  • 板块学术版
  • 楼主Carey_chen
  • 当前回复3
  • 已保存回复3
  • 发布时间2022/7/3 20:55
  • 上次更新2023/10/27 21:58:00
查看原帖
请教站外题
516836
Carey_chen楼主2022/7/3 20:55

题目:

题目描述
小 W 喜欢玩字符串!

现在小 W 手头上刚好有一个全部由小写字母组成的字符串,而他现在能够进行的操作是:若某个小写字母在这个字符串中出现了两次以上,那么他可以将这个小写字母全部变为一个任意的小写字母。

现在小 W 非常好奇一个问题:如果他可以进行这样的操作任意次,那么他有没有可能将整个字符串变为同一个字母呢?

小 W 想不出来,只能向你求助了。

为了防止你随意猜一个敷衍他,小 W 准备了很多个字符串来问你。

输入
第一行为数据组数 T,表示有 T 组数据。

接下来 T 行每一行都有一个仅由小写字母组成的字符串,含义如题意所示。

输出
输出共 T 行。

在每一行中,若能够通过操作将字符串变为同一个字母,则输出”YES”;否则输出”NO”。

代码:

#include <bits/stdc++.h> 

char str[1010];

int main()
{
	int T;
	
	scanf("%d", &T);
	getchar();
	
	while(T--)
	{
		int pool[30] = {0, };
		bool flag = false;
		int len;
		
		std::cin >> str;
		len = strlen(str);
		
		for(int i = 0; i < len; i++)
		{
			pool[str[i] - 'a' + 1]++;
		}
		
		for(int i = 1; i <= 26; i++)
		{
			if(pool[i] >= 2)
			{
				printf("YES\n");
				flag = true;
				break;
			} 
		}
		
		if(flag == false)
		{
			printf("NO\n");
		}
	}
	
	return 0;
}

样例过了,结果WA 0

2022/7/3 20:55
加载中...