力扣題解-387. 字串中的第一個唯一字元

amberlpp發表於2020-12-23

題目:387. 字串中的第一個唯一字元

給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。

示例

s = “leetcode”
返回 0

s = “loveleetcode”
返回 2

提示:你可以假定該字串只包含小寫字母。

來源:力扣(LeetCode)
連結:https://leetcode-cn.com/problems/first-unique-character-in-a-string
著作權歸領釦網路所有。商業轉載請聯絡官方授權,非商業轉載請註明出處。

題解

遍歷第一遍字串,利用雜湊表進行重複字元的統計;然後再遍歷一遍字串,找到第一個不重複的字元。

由於本題字串只包含小寫字母,因此可以直接利用陣列統計重複字元。

程式碼

class Solution {
public:
    int firstUniqChar(string s) {
        vector<int> array(26, 0);
        for (auto c: s) {
            array[c-'a'] += 1;
        }
        for (int i = 0; i< s.length(); i++) {
            if(array[s[i]-'a'] == 1) {
                return i;
            }
        }
        return -1;
    }
};

相關文章