函数main()接收一个任意字符串s,要求返回其中只出现 了1次的字符组成的新字符串,每 个字符保持原来的相对顺序。例如,s为'Beautiful is better than ugly.'时返回'Bfs brhngy.'.
时间: 2023-06-18 16:06:25 浏览: 156
可以使用哈希表记录每个字符出现的次数,再遍历字符串s,将只出现了一次的字符加入新字符串中。具体实现如下:
```c++
#include <iostream>
#include <string>
#include <unordered_map>
using namespace std;
string getUniqueChars(string s) {
string res;
unordered_map<char, int> count;
// 统计每个字符出现的次数
for (char c : s) {
count[c]++;
}
// 遍历字符串,将只出现一次的字符加入新字符串
for (char c : s) {
if (count[c] == 1) {
res.push_back(c);
}
}
return res;
}
int main() {
string s = "Beautiful is better than ugly.";
string res = getUniqueChars(s);
cout << res << endl; // 输出 Bfs brhngy.
return 0;
}
```
注意,此题中的“字符”包括空格和标点符号等非字母字符。
阅读全文