代码解析:
使用了哈希表 unordered_map 来统计每个字符的出现次数。
首先,定义了一个函数 findFirstUniqueChar,它的输入参数是一个字符串 s,表示要查找的字符串。函数返回第一个仅出现一次的字符。
在函数内部,创建了一个哈希表 count,用于存储每个字符的出现次数。然后,使用一个循环遍历字符串 s 中的每个字符,并在哈希表 count 中增加对应字符的计数。
接下来,再次遍历字符串 s 中的每个字符,对于每个字符,检查其在哈希表 count 中的计数。如果计数为1,则说明该字符是第一个仅出现一次的字符,立即返回该字符。
如果没有找到仅出现一次的字符,那么最后返回一个特定的标记字符 'no',表示没有出现次数只有一次的字符。
在 main 函数中,我们首先读入输入的字符串 s。
然后,我们调用 findFirstUniqueChar 函数来查找第一个仅出现一次的字符,并将结果存储在变量 result 中。
最后,我们输出结果字符 result。
参考代码:
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
char findFirstUniqueChar(const string& s) {
unordered_map<char, int> count;
// 统计每个字符的出现次数
for (char ch : s) {
count[ch]++;
}
// 找到第一个仅出现一次的字符
for (char ch : s) {
if (count[ch] == 1) {
return ch;
}
}
return 'no';
}
int main() {
string s;
cin >> s;
char result = findFirstUniqueChar(s);
cout << result << endl;
return 0;
}
0.0分
15 人评分
一只猪 2024-04-28 16:38:29 |
set是键值的排序哦 map是键值对