解题思路:把字符串中只出现一次的字符保存到set里。
注意事项:题意要求输出第一次出现字符,所以需要遍历两次字符串。
参考代码:
#include <iostream>
#include <string>
#include <unordered_set>
using namespace std;
string find(const string &str)
{
unordered_set<char> set;
for (char c : str) {
if (set.count(c))
set.erase(c);
else
set.insert(c);
}
for (size_t i = 0; i < str.length(); i++)
if (set.count(str[i]))
return string(1, str[i]);
return "no";
}
int main()
{
string s;
cin >> s;
cout << find(s);
return 0;
}
0.0分
0 人评分
C语言程序设计教程(第三版)课后习题9.8 (C语言代码)浏览:634 |
点我有惊喜!你懂得!浏览:2116 |
汽水瓶 (C语言代码)浏览:764 |
C语言程序设计教程(第三版)课后习题6.3 (C语言代码)浏览:511 |
C语言程序设计教程(第三版)课后习题9.3 (Java代码)浏览:1025 |
【出圈】 (C语言代码)浏览:824 |
C语言程序设计教程(第三版)课后习题5.5 (C语言代码)浏览:577 |
母牛的故事 (C语言代码)浏览:992 |
C语言程序设计教程(第三版)课后习题8.6 (C语言代码)浏览:631 |
C语言程序设计教程(第三版)课后习题1.5 (C语言代码)浏览:504 |