題目
給定一個字元串,找到它的第一個不重複的字元,并傳回它的索引。如果不存在,則傳回 -1。
示例:
s = "leetcode"
傳回 0
s = "loveleetcode"
傳回 2
提示:你可以假定該字元串隻包含小寫字母。
解題思路
class Solution:
def firstUniqChar(self, s: str) -> int:
# #通過内置函數in來實作
# sList = list(s)
# if len(s) == 1:return 0#處理1個字元串的異常情況
# for i in range(len(s)):
# if (sList[i] not in sList[i+1:]) and (sList[i] not in sList[:i]):
# return i
# return -1
# #字典實作
# wordsList = [chr(i) for i in range(97, 97+26)]
# valueList = [0]*26
# wordsDic = dict(zip(wordsList, valueList))
# sList = list(s)
# if len(s) == 1: return 0 # 處理1個字元串的異常情況
# for i in range(len(s)):
# wordsDic[sList[i]] += 1
# for i in range(len(s)):
# if wordsDic[sList[i]] == 1:
# return i
# return -1
#取巧方法,左右周遊如果找到的索引是相同,代表隻有一個字母
for i in s:
if s.find(i) == s.rfind(i):
return s.find(i)
return -1