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

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

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

//记录一下,最开始想的是出现重复的位置给他加上一个大数然后越搞越乱
//然后反应过来,重复了就直接标记为-1抛弃掉
//然后还忽略了一个没有结果的情况,我返回的是-1,需要判断一下只有是0-25的数才输出字符

#include<iostream>
#include<string>
#include<vector>

using namespace std;
int main(){
    string inputstr;
    cin >> inputstr;
    vector<int> vec(26,0);
    int nums = 0;
    for(int i = 0;i<inputstr.size();++i){
        if(vec[int(inputstr[i]-'a')] == 0)vec[int(inputstr[i]-'a')] = ++nums;
        else vec[int(inputstr[i]-'a')] = -1;
    }
    int min = nums,res = -1,i;
    for(i = 0;i<vec.size();++i){
        if(vec[i] == 0 || vec[i] == -1)continue;
        if(min>=vec[i]){
            min = vec[i];
            res = i;
        }
    }
    if(res == -1)cout << -1 << endl;
    else cout << char(res+'a') << endl;
    return 0;
}
全部评论

相关推荐

05-20 13:59
门头沟学院 Java
米黑子米黑子:你这个成绩不争取下保研?
点赞 评论 收藏
分享
06-17 00:26
门头沟学院 Java
程序员小白条:建议换下项目,智能 AI 旅游推荐平台:https://github.com/luoye6/vue3_tourism_frontend 智能 AI 校园二手交易平台:https://github.com/luoye6/vue3_trade_frontend GPT 智能图书馆:https://github.com/luoye6/Vue_BookManageSystem 选项目要选自己能掌握的,然后最好能自己拓展的,分布式这种尽量别去写,不然你只能背八股文了,另外实习的话要多投,尤其是学历不利的情况下,多找几段实习,最好公司title大一点的
无实习如何秋招上岸
点赞 评论 收藏
分享
不愿透露姓名的神秘牛友
07-10 12:05
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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