信息学奥赛一本通 1130:找第一个只出现一次的字符(桶排)

题目链接:点击这里
信息学奥赛一本通 1130:找第一个只出现一次的字符(桶排)_第1张图片

#include
#include
#include
#include
#include
#include
#include
#include

using namespace std;
typedef long long ll;
const int MOD = 10000007;
const int INF = 0x3f3f3f3f;
const double PI = acos(-1.0);
const int maxn = 100005;
char a[maxn];
int cnt[30];

int main()
{
	scanf("%s",a);	//获取一行字符串
	int len = strlen(a);	//求字符串长度
	for(int i=0;i<len;i++)		//桶排的思想统计26个小写字母出现频次
		cnt[a[i]-97]++;
		
	for(int i=0;i<len;i++)	//对字符串进行遍历
	{
		if(cnt[a[i]-97]==1)	//如果出现过一次
		{
			printf("%c\n",a[i]);	//输出字符 
			return 0;	//结束程序 
		}
	}
	
	printf("no\n");
	return 0;
}

你可能感兴趣的:(排序)