找第一个只出现一次的字符
描述:
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
输入:
一个字符串,长度小于100000。
输出:
输出第一个仅出现一次的字符,若没有则输出no。
样例输入:
abcabd
复制
样例输出:
c
代码:
#include
#include
int main()
{
char str[10000];
fgets(str,10000,stdin);
int a[26],i,count=0;
for(i=0;i<26;i++)a[i]=0;
int len=strlen(str);
for(i=0;i
a[str[i]-'a']++;
}
for(i=0;i
if(a[str[i]-'a']==1){
printf("%c",str[i]);
count++;
break;
}
}
if(count==0)printf("no");
return 0;
}
修改如下,供参考:
#include <stdio.h>
#include <string.h>
int main()
{
char str[100000]; //修改
fgets(str, 100000, stdin); //修改
int a[26], i, count = 0;
for (i = 0; i < 26; i++) a[i] = 0;
int len = strlen(str);
for (i = 0; i < len; i++) {
a[str[i] - 'a']++;
}
for (i = 0; i < len; i++){
if (a[str[i] - 'a'] == 1){
printf("%c", str[i]);
count++;
break;
}
}
if (count == 0) printf("no");
return 0;
}
你后面2个for循环语法写错了