给定一个只包含小写字母的字符串,请你找到第一个在整个字符串中仅出现一次的字符。如 果没有,输出 no。c++代码
时间: 2024-10-07 08:03:13 浏览: 18
在C++中,你可以使用哈希表(unordered_map)来解决这个问题。哈希表允许你在常数时间内进行查找和插入操作,非常适合用于这种查找唯一字符的需求。以下是实现该功能的一个简单示例代码:
```cpp
#include <iostream>
#include <unordered_map>
char findFirstUniqueChar(std::string str) {
std::unordered_map<char, int> charCount;
for (char c : str) {
charCount[c]++;
}
for (int i = 0; i < str.length(); ++i) {
if (charCount[str[i]] == 1) {
return str[i];
}
}
// 如果没有找到唯一字符,返回 'no'
return 'n';
}
int main() {
std::string input = "banana";
char result = findFirstUniqueChar(input);
if (result != 'n') {
std::cout << "First unique character is: " << result << std::endl;
} else {
std::cout << "No unique characters." << std::endl;
}
return 0;
}
```
这个程序首先遍历输入字符串,统计每个字符出现的次数,并存储在`charCount`映射中。然后再次遍历字符串,如果发现某个字符的计数为1,则返回该字符。如果没有找到,最后返回'n'。
阅读全文