天天看點

[每日一題] 44. 找出字元串中第一個隻出現一次的字元(字元串、哈希)

1. 題目來源

連結:找出字元串中第一個隻出現一次的字元

來源:牛客網

2. 題目說明

找出字元串中第一個隻出現一次的字元

輸入描述:

輸入一個非空字元串

輸出描述:

輸出第一個隻出現一次的字元,如果不存在輸出-1

示例:

輸入:

asdfasdfo

輸出

o

3. 題目解析

采用哈希的思想,用一個數組的每一個位置表示對應的位置。對應的字元位置存放字元出現的次數。統計完之後,周遊輸入字元,遇到第一個隻出現一次的字元就停止。

4. 代碼展示

#include <bits/stdc++.h>

using namespace std;

int main() {
    string str;
    while (cin >> str) {
        int num[256] = {0};
        for (int i = 0; i < str.size(); ++i) {
            num[str[i]]++;
        }
        
        int j;
        for (j = 0; j < str.size(); ++j) {
            if (num[str[j]] == 1) {
                cout << str[j] << endl;
                break;
            }
        }
    
        if (j >= str.size()) 
            cout << -1 << endl;
    }
    return 0;
}