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

2021-10-07 14:18:44 字數 733 閱讀 6947

在字串中找出第乙個只出現一次的字元。如輸入「abaccdeff」,則輸出'b'

從頭開始掃瞄這個字串中的每個字元,當訪問到某字元時拿這個字元和後面的每個字元相比較,如果在後面沒有發現重複的字元,則該字元技術只出現一次的字元。

時間複雜度是o(n^2)

用乙個容器來存放每個字元的出現次數,根據字元來查詢它出現的次數,雜湊表

定義雜湊表的鍵值是字元,而值是該字元出現的次數。還需要從頭開始掃瞄字串兩次。第一次掃瞄字串時,每掃瞄到乙個字元就在雜湊表的對應項中把次數加1,接下來第二次掃瞄,每掃瞄到乙個字元就能從雜湊表中得到該字元出現的次數。這樣第乙個只出現一次的字元就是符合要求的輸出。

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

class solution:

def firstnotrepeatingchar(self, s):

# write code here

if s == none:

return -1

num_dict = {}

for c in s:

if c in num_dict:

num_dict[c] += 1

else:

num_dict[c] = 1

for c in range(len(s)):

if num_dict[s[c]] == 1:

return c

return -1

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

題目描述 在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 建立乙個字典後再便利一遍字串,找第乙個 coding utf 8 class solution def firstnotrepeatingchar sel...

劍指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,從而將空間複雜度由...