劍指offer 字元流中第一個不重複的字元 python實現
阿新 • • 發佈:2021-02-19
技術標籤:劍指offer
題目
在一個字串(0<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).(從0開始計數)
輸入
“google”
輸出
4
思路
這道題網上常見的關於python的程式碼都是python2,故使用python3實現
本質是建立雜湊表,在python中使用字典,兩次遍歷,第一次遍歷記錄各個字元出現的次數,然後對字串的下標進行遍歷,找到第一個出現次數僅為1的字元
解法
# -*- coding:utf-8 -*-
class Solution:
def FirstNotRepeatingChar (self, s):
res = {}
for ele in s:
if ele not in res:
res[ele] = 1
else:
res[ele] += 1
for i in range(len(s)):
if s[i] in res and res[s[i]] == 1:
return i
return -1
# write code here