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

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

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







#华为笔试#
全部评论

相关推荐

不愿透露姓名的神秘牛友
07-07 12:04
毕业生招你惹你了,问一个发薪日来一句别看网上乱七八糟的你看哪个工作没有固定发薪日扭头就取消了面试就问了一句公司都是这个态度吗还搞上人身攻击了...
程序员小白条:呃呃呃,都还没面试,我都不会问这么细,何况通不通过,去不去都另说,你没实力和学历的话,在外面就这样,说实话没直接已读不回就不错了,浪费时间基本上
点赞 评论 收藏
分享
05-20 21:57
已编辑
门头沟学院 Java
喜欢吃卤蛋的悲伤蛙在...:建信融通没消息吧,我2说有实习挂简历不理了
点赞 评论 收藏
分享
05-25 10:45
门头沟学院 Java
Frank_zhan...:没实习一个项目肯定不够,可以再做一个轮子,技术栈再补一个mq,微服务,整体再换个简历模板,暑期尽量再找一个日常实习
无实习如何秋招上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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