找第一個只出現一次的字符
題目描述
給定一個只包含小寫字母的字符串,請你找到第一個僅出現一次的字符。如果沒有,輸出no。
輸入格式
一個字符串,長度小於100000。
輸出格式
輸出第一個僅出現一次的字符,若沒有則輸出no。
樣例
樣例輸入
abcabd
樣例輸出
c
精髓:
此題需要用的桶排序。我們開一個數組來存儲每一個字符出現的次數。
每遍歷到一個字符,就把這個字符的數量加1。如果最終一個字符的數量是1的話,就說明它從始至終只出現了一次。又因爲for循環我們是從前到後進行遍歷,所以第一個遍歷到的只出現了一次的字符就是整個數組中第一次只出現一次的字符。
參考代碼:
#include<cstdio>
#include<cstring>
int main()
{
char a[100005];
int k=0,lena,t[260]={};
bool flag=true;
scanf("%s",a);
lena=strlen(a);
for(int i=0;i<lena;i++) {
t[a[i]]++;
for(int i=0;i<lena;i++) {
if(t[a[i]]==1)
{
printf("%c",a[i]);
return 0;
}
}
printf("no");
return 0;
}