在C ++中查找字符串中的最后一个非重复字符
假设我们有一个字符串str。我们必须找到其中的最后一个非重复字符。因此,如果输入字符串就像“编程”。因此,第一个非重复字符为“n”。如果不存在这样的字符,则返回-1。
我们可以通过制作一个频率阵列来解决这个问题。这将存储给定字符串的每个字符的频率。频率更新后,便开始从最后一个字符开始逐行遍历字符串。然后检查存储的频率是否为1,如果为1,则返回,否则返回前一个字符。
示例
#include <iostream>
using namespace std;
const int MAX = 256;
static string searchNonrepeatChar(string str) {
int freq[MAX] = {0};
int n = str.length();
for (int i = 0; i < n; i++)
freq[str.at(i)]++;
for (int i = n - 1; i >= 0; i--) {
char ch = str.at(i);
if (freq[ch] == 1) {
string res;
res+=ch;
return res;
}
}
return "-1";
}
int main() {
string str = "programming";
cout<< "Last non-repeating character: " << searchNonrepeatChar(str);
}输出结果
Last non-repeating character: n
热门推荐
1 怎么说祝福语简短
5 修祖屋祝福语简短
10 关于开车的祝福语简短
11 形容新年的祝福语简短
12 结婚祝福语简短精辟 兄弟
13 对女友的简短祝福语
14 近代生日祝福语简短精辟
15 祝福语简短古诗词
16 新婚祝福语大全简短精炼
17 高考前祝福语简短字句
18 学生节祝福语大全简短