在字串中找出第乙個只出現一次的字元。如輸入「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,從而將空間複雜度由...