解法一:利用hashmap
1.如果s為空或者長度為0,返回' ';
2.將s轉化為陣列,然後將陣列中元素分別放入hashmap中,key表示字元,value表示個數
3.然後判斷字元對應的個數是否為1,若為1直接返回
class solution
char str=s.tochararray();
hashmapmap=new hashmap<>();
for(character i:str)
for(int i=0;i解法二:利用陣列,因為陣列比雜湊快
字元往多了數按照擴充套件的ascii碼也就256個
class solution
char str=s.tochararray();
int count=new int[256];
for(char c:str)
for(char c:str)
}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 ...