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

#include <iostream>

#include <map>

#include <unordered_map>

#include <vector>

using namespace std;

int main() {

    string s;

    cin >> s;

    string letter;

    vector<int> count(s.length(), 0);

    for (char c : s) {

        if (letter.find(c) == EOF) letter.push_back(c);

        count[letter.find(c)]++;  //给出现的所有字母按照顺序编号并加入数组

    }

    int j = -1; //记录第一个出现1次的字母编号,初始化为-1代表没找到

    for (int i = 0; i < count.size(); i++) {

        if (count[i] == 1) {

            j = i;

            break;

        }

    }

    if (j != -1)

        cout << letter[j];  //按照编号找到字母输出

    else

        cout << j;

}

// 64 位输出请用 printf("%lld")

全部评论

相关推荐

评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务