在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 婆婆高寿祝福语大全简短