剑指offer 第一个只出现一次的字符 hash

时间:2022-09-08 13:25:37

思路:i表示字符的ASCII码值,cntp[i]表示字符出现的次数。

AC代码

class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        int n = str.length();
        if(n == 0) return -1;
        int cnt[500];
        memset(cnt, 0, sizeof(cnt));
        for(int i = 0; i < n; ++i) {
            cnt[str[i]]++;
        }
        int ans = 0;
        for(int i = 0; i < n; ++i) {
            if(cnt[str[i]] == 1) {
                ans = i;
                break;
            }
        }
        return ans;
    }
};

如有不当之处欢迎指出!