在 C++ 中找到字符串中最后一个不重复的字符
假设我们有一个字符串 str。我们必须找到其中的最后一个不重复的字符。因此,如果输入字符串类似于“programming”。那么第一个不重复的字符是“n”。如果不存在这样的字符,则返回 -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
广告
数据结构
网络
关系型数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
JavaScript
PHP