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

2022-09-08 14:24:14 字數 821 閱讀 3725

面試題50. 第乙個只出現一次的字元

難度簡單14

在字串 s 中找出第乙個只出現一次的字元。如果沒有,返回乙個單空格。

示例:

s = "abaccdeff"

返回 "b"

s = ""

返回 " "

/*

*1.雜湊表

a.使用hashmap來儲存 key為字元,value為true or false

1)true -> 該字元為乙個

2) false -> 該字元不為乙個

b.loop map 找到第乙個數量為1的字元 return

c.直接 return '';

time : o(n)

space : o(n)

*/public

char

firstuniqchar

(string s)

for(

char ch : chs)

return

' ';

}

/*

* 2.有序hash表

思路:hash表有去重的特點,當資料比較大的時候 我們直接從hash中查詢第乙個value為true的值就可以了。

time : o(n) 而前者為o(2n)

*/public

char

firstuniqchar

(string s)

return

' ';

}

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

class solution for auto c s for auto c s return 自己寫的 劣勢在於使用集合而不是對映,因此無法存對應字元出現的次數,因此當insert乙個重複字元時,它可能是所求的目標字元,也可能是後面的,例如google,insert第二個o時,當前所求的目標字元 ...

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

在字串中找到第乙個只出現一次的字元。例 輸入 abaccdeff 則輸出 b 遍歷字串,每個字母第一次出現時將字母作為key,index作為val存入字典,當在字典中有key時,則將val改寫為 1,表示出現2次以上。遍歷字串結束後,遍歷字典,輸出位置最小的字元。時間複雜度 o n 空間複雜度 o ...

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

劍指offer 50.第乙個只出現一次的字元 edited by ryunin date 2019 05 06 include include needed using namespace std using namespace gnu cxx needed class solution else ...