第一個只出現一次的字符(劍指offer)

題目描述:

在一個字符串(0<=字符串長度<=10000,全部由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).

解題思路:

兩次遍歷數組,第一次記錄數組中字符出現的次數;第二次輸出第一個次數爲1的字符。

通過的C++代碼:

class Solution {
public:
    int FirstNotRepeatingChar(string str) {
        if(str.empty())
        {
            return -1;
        }
        int letter[256] = {0};
        int ans = -1;
        int len = str.size();
        for(int i=0; i<len; ++i)
        {
            letter[str[i]]++;
        }
        for(int i=0; i < len; ++i)
            if(letter[str[i]] == 1)
            { 
                ans = i;
                break;
            }
        return ans;
    }
};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章