T1104 找第一个只出现一次的字符
给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出"no"。
输入格式
一个字符串,长度小于 100000100000。
输出格式
输出第一个仅出现一次的字符,若没有则输出"no"。(输出时每行末尾的多余空格,不影响答案正确性)
样例输入
abcabd
样例输出
c
代码
#include <iostream>
#include <string>
using namespace std;
int main(){
string s;
int count[26] = {0};//使用一个数组来存储26个字母出现的次数
int len = 0;//存储s的长度
getline(cin,s);
len = s.length();
// 首先循环一次s,统计所有字母出现的次数
for(int i=0; i<len; i++){
count[s[i]-'a']++;//'a'的ASCII码为97
}
//再循环遍历统计结果,出现第一个出现一次的字符就输出,并终止
for(int i=0; i<len; i++){
if(count[s[i]-'a'] == 1){
cout << s[i];
return 0;
}
}
//如果没有则输出no
cout << "no";
return 0;
}