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

2021-09-09 07:09:38 字數 802 閱讀 9085

題目描述

在乙個字串(0<=字串長度<=10000,全部由字母組成)中找到第乙個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).

建立乙個字典後再便利一遍字串,找第乙個:

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

class

solution

:def

firstnotrepeatingchar

(self, s)

:# write code here

s_dict =

for char in s:

s_dict[char]

= s_dict[char]+1

if char in s_dict else

1for i, char in

enumerate

(s):

if s_dict[char]==1

:return i

return

-1

count一下也可以:
# -*- coding:utf-8 -*-

class

solution

:def

firstnotrepeatingchar

(self, s)

:# write code here

for i, char in

enumerate

(s):

if s.count(char)==1

:return i

return

-1

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

在字串中找出第乙個只出現一次的字元。如輸入 abaccdeff 則輸出 b 從頭開始掃瞄這個字串中的每個字元,當訪問到某字元時拿這個字元和後面的每個字元相比較,如果在後面沒有發現重複的字元,則該字元技術只出現一次的字元。時間複雜度是o n 2 用乙個容器來存放每個字元的出現次數,根據字元來查詢它出現...

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

一.找出第乙個出現一次字元的位置 enumerate 將可遍歷的資料物件 列表 陣列 字串 組合為索引序列,同時返回資料和下標 def firstnotrepeatingchar self,s write code here if s return 1 for index,val in enumer...

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

在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 從0開始計數 最直觀的解法是使用 hashmap 對出現次數進行統計,但是考慮到要統計的字元範圍有限,因此可以使用整型陣列代 替 hashmap,從而將空間複雜度由...