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

2021-09-21 06:29:04 字數 610 閱讀 9020

/*

*@劍指offer

*@50.第乙個只出現一次的字元

*@edited by ryunin

*@date:2019/05/06

*/#include #include //needed

using namespace std;

using namespace __gnu_cxx; //needed

class solution

else

} //錯誤方法:直接掃瞄hash_map容器。會出現排序假象,原因在於buckets size = 193且hash_map儲存不是按照新增順序。而ascii最大為127。解決辦法:再掃瞄一次原始字串!

// hash_map::iterator itf = map1.begin();

// for(;itf != map1.end();itf++)

//

// coutit = map1.find(input[i]);

if(it->second == 1)

} return 0;

} };

int main()

劍指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 第乙個只出現一次的字元

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