会说C语言的萝卜


私信TA

用户名:dotcpp0697166

访问量:483

签 名:

等  级
排  名 2094
经  验 2460
参赛次数 0
文章发表 10
年  龄 0
在职情况 在职
学  校
专  业

  自我简介:

解题思路:把字符串中只出现一次的字符保存到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 人评分

  评论区

  • «
  • »