-
总时间限制:
- 1000ms 内存限制:
- 65536kB
-
描述
-
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入 - 一个字符串,长度小于100000。 输出
- 输出第一个仅出现一次的字符,若没有则输出no。 样例输入
-
abcabd
样例输出 -
c
#include<string.h>
char str[100001];
int main()
{
while(scanf("%s",str)!=EOF)
{
int i,k=0,n=strlen(str);
int s[26];
int a[26];
memset(s,0,sizeof(s));//对数组a,s清零
memset(a,0,sizeof(a));
for(i=0;i<n;i++)
{
char c=str[i];
int idx=c-'a';
if(s[idx]<2)
{
if(s[idx]==0)
a[k++]=idx;//从a[0]开始记录第一个字母位置
s[idx]++;//记录出现次数
}
}
for(i=0;i<26;i++)
{
if(s[a[i]]==1)//从a[0]对应位置开始查找
{
printf("%c",97+a[i]);
break;
}
else if(i==25&&s[a[25]]!=1)//查找到了最后一个位置
printf("no\n");
}
}return 0;
}