在乙個字串(0<=字串長度<=10000,全部由字母組成)中找到第乙個只出現一次的字元,並返回它的位置, 如果沒有則返回 -1(需要區分大小寫).
leetcode對應題目:387. 字串中的第乙個唯一字元
題目解答
總結:雜湊表雖然是無序的,但是可以根據string中元素進行查詢,第乙個出現次數為1的就是所求。注意一下構建雜湊陣列要初始化。
c++語法規則:陣列初始化列表中的元素個數小於指定的陣列長度時,不足的元素補以預設值。所以int a[128] = ;全部初始化為0,如果你想用int a[128] = ;則只有第乙個元素被初始化為1,其他的都還是0,所以當陣列問題初始化為非0還是使用迴圈解決。
class solution ;
for(char c : str) hash_table[c]++;
for(int i = 0 ; i < str.size();i++)
return -1;
}};
開闢ascii字元陣列時,陣列多大?陣列型別是什麼?演算法中ascii碼的積累
總結:如果要判斷多個字元是否在某個字串**現過或者統計多個字元在某個字串**現的次數,那麼我們可以通過乙個簡單的雜湊字元陣列提高很多效率!
34 第乙個只出現一次的字元
知識點 字串 雜湊表 一 題目描述 在乙個字串 0 字串長度 10000,全部由字母組成 中找到第乙個只出現一次的字元,並返回它的位置,如果沒有則返回 1 需要區分大小寫 從0開始計數 二 思路 思路 建立乙個雜湊表,第一次掃瞄的時候,統計每個字元出現的次數。然後第二次掃瞄的時候,如果該字元出現的次...
第乙個只出現一次的字元
題目 在乙個字串中找到第乙個只出現一次的字元。如輸入 abaccdeff,則輸 出b。分析 這道題是 2006年google的一道筆試題。看到這道題時,最直觀的想法是從頭開始掃瞄這個字串中的每個字元。當訪問 到某字元時拿這個字元和後面的每個字元相比較,如果在後面沒有發現重複的字 符,則該字元就是只出...
第乙個只出現一次的字元
題目 在乙個字串中找到第乙個只出現一次的字元,並輸出它在字串中的位置。如輸入 abaccdeff,則輸出 b 1。定義乙個256長度的陣列,乙個用來記錄字元出現的次數。然後在遍歷字元陣列,如果該字元出現了一次,輸出並結束,否則繼續。include using namespace std 在乙個字串中...