劍指Offer32 第乙個只出現一次的字元

2021-09-04 02:10:35 字數 726 閱讀 6677

思路:

利用雜湊表,雜湊表的下標是字元的ascii值,值為字元出現的次數。

# -*- coding:utf-8 -*-

class solution:

def firstnotrepeatingchar(self, s):

# write code here

#建立雜湊表,字元長度為8的資料型別,共有256種可能,於是建立乙個長度為256的列表

ls=[0]*256

#遍歷字串,下標為字元的ascii值,值為該字元出現的次數

for i in s:

ls[ord(i)]+=1

#遍歷列表,找到出現次數為1的字元並輸出位置

for j in s:

if ls[ord(j)]==1:

return s.index(j)

return -1

另一種做法:

class solution:

def firstnotrepeatingchar(self, s):

# write code here

if len(s)<0:

return -1

for i in s:

if s.count(i)==1:

return s.index(i)

return -1

count()函式可以統計每個字元出現的個數。

Python劍指offer 第乙個只出現一次的字元

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 從0開始計數 時間限制 c c 1秒,其他語言2秒 空間限制 c c 32m,其他語言64m coding utf 8 class solution def fir...

劍指offer 第乙個只出現一次的字元

在乙個字串 1 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置 我們遍歷這個字串,假設每個當前字元都是只出現一次的,我們分別向前和向後考察是否存在相同字元 向前考察 儲存乙個vector裡面存放所有已知的已經重複過的字元,如果當前字元跟這個vector裡面的字元相...

劍指offer 第乙個只出現一次的字元

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1.將字串轉化成陣列,兩個迴圈,外層迴圈遍歷這個陣列i,內層迴圈也是從0 開始遍歷j,判斷i對應的元素和j對應的元素是否相等,相等的話就說明不是要求的位置,直接開始判斷下乙個元素i p...