用c++解决问题:给定一个只包含小写字母的字符串,请你找到第一个仅出现一次的字符。如果没有,输出no
时间: 2024-10-17 10:03:48 浏览: 32
1130:找第一个只出现一次的字符.cpp
在C++中,解决这个问题可以采用哈希表的数据结构。我们可以遍历字符串,对于每个字符,检查它是否已经在哈希表中。如果不在,就将其添加到哈希表并设置计数为1;如果已经存在,说明这个字符不是第一次出现,更新其计数。最后再从哈希表中查找计数为1的字符即可。
以下是简单的C++代码实现:
```cpp
#include <unordered_map>
using namespace std;
char firstUniqChar(string s) {
unordered_map<char, int> charCount;
for (char c : s) {
if (charCount.find(c) == charCount.end()) { // 如果字符不存在
charCount[c] = 1; // 添加到哈希表,并计数为1
} else {
charCount[c]++; // 否则,计数加1
}
}
for (auto &entry : charCount) {
if (entry.second == 1) { // 找到计数为1的字符
return entry.first;
}
}
return 'no'; // 没有找到仅出现一次的字符,返回'n'
}
```
阅读全文