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

2021-08-28 21:39:42 字數 911 閱讀 9693

這個題在劍指offer裡屬於常規題,主要看程式語言的運用的如何巧。

python 常規操作,用count計數,index輸出位置

class solution():

def firstnotrepeatingchar(self,s):

if len(s)<1:return -1

for i in s:

if s.count(i)==1:

return s.index(i)

break

return -1

大神壓縮,一行python**搞定

class solution():

def firstnotrepeatingchar(self,s):

return [i for i in range(len(s)) if s.count(s[i])==1][0] if s else -1

採用內建函式

class solution():

def firstnotrepeatingchar(self,s):

return s.index(list(filter(lambda c:s.count(c)==1,s)[0]) if s else -1

使用雜湊表

class  solution():

def firstnotrepeatingchar(self,s):

is=[0]*256

for i in s:

ls[ord[i]]+=1

for j in s:

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

return s.index(j)

break

return -1

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

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

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

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

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

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 我的思路 第一次遍歷string,用乙個map記錄每個字元出現的次數 第二次遍歷map,找到次數為1的字元 第三次遍歷string,找到該字元出現的位置。問題 ma...