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

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

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

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

using namespace std;
int main(){
    vector<char> res;
    vector<int>bucket(26,0);
    string str;
    string ans = "-1";
    cin >>str;
    for(char c : str){
//         cout << "当前字符:" << c << endl;
//         cout << "是否出现过:" << bucket[c-'a'] << endl;
        if( bucket[ c - 'a' ] == 0 ){
            bucket[ c - 'a' ]++;
            res.push_back(c);
//             cout << "加入结果集:" << endl;
//             for(auto x : res)
//                 cout << x << ' ';
//             cout << endl;
        }
        else{
            for(int i = 0; i < res.size(); i++){
                if( res[i] == c ){
                    res[i] = '*';
                    break;
                }
            }
//             cout << "当前结果集:" << endl;
//             for(auto x : res)
//                 cout << x << ' ';
//             cout << endl;
        }

    }

    for(char cur : res ){
        if( isalpha(cur) ){
            ans = cur ;
            break;
        }
    }

    cout <<ans;
}
全部评论

相关推荐

冲芭芭拉鸭:你这图还挺新,偷了。
投递美团等公司10个岗位
点赞 评论 收藏
分享
点赞 收藏 评论
分享
牛客网
牛客企业服务