LeetCode刷題記錄——第387題(字串中的第一個唯一字元)
阿新 • • 發佈:2019-01-13
題目描述
給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。
案例:
s = “leetcode”
返回 0.
s = “loveleetcode”,
返回 2.
思路分析
- 關鍵問題在於,如何找到第一個不重複字元。可以新建一個字典,用key表示對應s中的字元,value表示出現的次數,如果第一次出現,則往後新建key,如果不是第一次出現,value += 1
- 順序遍歷s,從而在letters中保留了原來s中的順序。
程式碼示例
class Solution(object):
def firstUniqChar(self, s):
"""
:type s: str
:rtype: int
"""
letters = {}
for ch in s:
if ch not in letters:
letters[ch] = 1
else:
letters[ch] += 1
for i in range(len(s)):
if letters[ s[i]] == 1:
return i
return -1