题解 | #找出字符串中第一个只出现一次的字符#

找出字符串中第一个只出现一次的字符

https://www.nowcoder.com/practice/e896d0f82f1246a3aa7b232ce38029d4

/**
 * @file hj59-找出字符串中第一个只出现一次的字符.cc
 * @author jvcilang
 * @brief
 * 1. 将所有字符存入到容器中。
 * 2. 将字符个数为 1 的字符存入到另一个容器中
 * 3. 将这些元素与原来输入的string进行对比,然后输出第一次出现的单个字符
 * @version 0.1
 * @date 2022-08-18
 *
 * @copyright Copyright (c) 2022
 *
 */

#include<iostream>
#include<string>
#include<vector>
#include <map>
#include <algorithm>

using namespace std;

void ChuXianYiCi()
{
    string str;
    getline(cin, str);
    map<char, int> omap;
    for (int i = 0; i < str.length(); i++) {
        omap[str[i]] += 1;
    }

    vector<char> vec;
    for (auto it = omap.begin(); it != omap.end(); it++) {
        if (it->second == 1) {
            vec.push_back(it->first);
        }
    }

    int n = str.length();
    for (int i = 0; i < vec.size(); i++) {
        int a = str.find(vec[i]);
        n = min(n, a);
    }

    if (n == str.length()) {
        cout << -1 << endl;
    } else {
        cout << str[n] << endl;
    }
}

int main()
{
    ChuXianYiCi();

    return 0;
}







#华为笔试#
全部评论

相关推荐

不愿透露姓名的神秘牛友
11-26 15:46
已编辑
字节国际 电商后端 24k-35k
点赞 评论 收藏
分享
努力学习的小绵羊:我反倒觉得这种挺好的,给不到我想要的就别浪费大家时间了
点赞 评论 收藏
分享
评论
点赞
收藏
分享
牛客网
牛客企业服务