1. 程式人生 > 其它 >劍指offer 字元流中第一個不重複的字元 python實現

劍指offer 字元流中第一個不重複的字元 python實現

技術標籤:劍指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