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

2021-10-20 22:37:15 字數 564 閱讀 7902

class

solution

;for

(auto c : s)

for(

auto c : s)

return

' ';}}

;

//自己寫的

//劣勢在於使用集合而不是對映,因此無法存對應字元出現的次數,因此當insert乙個重複字元時,它可能是所求的目標字元,也可能是後面的,例如google,insert第二個o時,當前所求的目標字元(即第一次只出現一次的字元仍然是g),因此為了標註該字元重複了,要麼刪掉,要麼做某些標記,但不論哪種,總需要遍歷vector先找到該重複字元,才能刪除或標記;而y總的方法,無論某個字元是第1次出現還是重複字元,操作都是++count[ch]

class

solution);

us.insert

(ch);}

else

}char()

};//y總

class

solution

char()

};

劍指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 ...

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

解法一 利用hashmap 1.如果s為空或者長度為0,返回 2.將s轉化為陣列,然後將陣列中元素分別放入hashmap中,key表示字元,value表示個數 3.然後判斷字元對應的個數是否為1,若為1直接返回 class solution char str s.tochararray hashma...