用C++完成算法:给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no。
时间: 2023-03-29 10:03:42 浏览: 217
可以使用哈希表来解决这个问题。首先遍历一遍字符串,将每个字符出现的次数记录在哈希表中。然后再遍历一遍字符串,找到第一个出现次数为1的字符即可。
C 代码实现如下:
#include <stdio.h>
#include <string.h>
#define MAXN 100005
int cnt[26]; // 哈希表,记录每个字符出现的次数
int main()
{
char s[MAXN];
scanf("%s", s);
int n = strlen(s);
for (int i = ; i < n; i++) {
cnt[s[i] - 'a']++;
}
int ans = -1;
for (int i = ; i < n; i++) {
if (cnt[s[i] - 'a'] == 1) {
ans = i;
break;
}
}
if (ans == -1) {
printf("no\n");
} else {
printf("%c\n", s[ans]);
}
return ;
}
阅读全文