在本教程中,我们将学习如何在给定的字符串中查找第一个非重复字符。让我们来看一个例子。
输入-nhooo
输出-u
让我们看看解决问题的步骤。
初始化字符串。
初始化映射字符和数组,以存储字符串中字符的频率。
遍历字符串。
找到每个字符的频率并将其存储在映射中。
还要存储字符的索引。
遍历映射中的字符频率。
以频率1打印第一个字符。
让我们看一下代码。
#include <bits/stdc++.h>
#include <map>
using namespace std;
void findDistinctCharacters(string random_string) {
// 初始化字符数
map<char, int[2]> chars;
// 遍历字符串
for (int i = 0; i < random_string.size(); ++i){
chars[random_string[i]][0]++;
chars[random_string[i]][1] = i;
}
int char_index = INT_MAX;
// 打印频率为1的第一个字符
for (auto item: chars) {
// 检查频率
if (item.second[0] == 1) {
char_index = min(char_index, item.second[1]);
}
}
// 打印频率为1的第一个字符
cout << random_string[char_index] << u;
}
int main() {
findDistinctCharacters("nhooo");
return 0;
}输出结果如果运行上面的代码,则将得到以下结果。
u
如果您对本教程有任何疑问,请在评论部分中提及。