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

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

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;
}







#华为笔试#
全部评论

相关推荐

06-04 17:59
已编辑
长江大学 Java
点赞 评论 收藏
分享
吴offer选手:我卡在笔试才是最好笑的,甚至没给我发过笔试链接
投递哔哩哔哩等公司6个岗位
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
06-05 15:27
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务