在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
热门推荐
10 新年门口花束祝福语简短
11 盘锦结婚祝福语大全简短
12 父母生日祝福语 简短独特
13 家庭恩爱祝福语简短英文
14 高考俄语祝福语大全简短
15 虎年祝福语 诗句唯美简短
16 生日婚礼祝福语简短精辟
17 虎年喝酒拜年祝福语简短
18 教师闺蜜祝福语简短