演算法-First Unique Character in a String-字串中的第一個唯一字元
1、題目描述
給定一個字串,找到它的第一個不重複的字元,並返回它的索引。如果不存在,則返回 -1。
示例:
s = "leetcode"
返回 0
s = "loveleetcode"
返回 2
2、題目分析
- 與以往的題目不同,這個是找唯一的字元,那就需要遍歷完成之後再二次遍歷
- 首先考慮使用HashMap,再考慮使用字典
- 第一次遍歷統計各個字元出現的次數,第二次遍歷找僅出現一次的那個字元
3、程式碼實現
public int firstUniqChar1(String s) {
Map<Character,Integer> map = new HashMap<>();
//統計出現次數
for(int i = 0;i < s.length();i++){
map.put(s.charAt(i),map.getOrDefault(s.charAt(i),0) + 1);
}
//找第一個出現的唯一元素下標
for(int i = 0;i < s.length();i++){
if(map.get(s.charAt(i)) == 1){
return i;
}
}
return -1;
}
//使用字典能降低時間和空間複雜度
public int firstUniqChar(String s){
int[] count = new int[26];
for(int i = 0;i < s.length();i++){
count[s.charAt(i) - 'a']++;
}
for(int i = 0;i < s.length();i++){
if(count[s.charAt(i) - 'a'] == 1) return i;
}
return -1;
}
4、複雜度分析
- 時間複雜度:O(N) 兩次遍歷
- 空間複雜度:O(∣Σ∣) 最多儲存26個不重複字元
相關文章
- 387. 字串中的第一個唯一字元字串字元
- leedcode-字串中的第一個唯一字元字串字元
- LeetCode初級演算法之字串:387 字串中的第一個唯一字元LeetCode演算法字串字元
- LeetCode-387-字串中的第一個唯一字元LeetCode字串字元
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java
- 力扣題解-387. 字串中的第一個唯一字元力扣字串字元
- [CareerCup] 1.1 Unique Characters of a String 字串中不同的字元字串字元
- js 字串中取得第一個字元和最後一個字元JS字串字元
- 【leetcode 簡單】 第九十題 字串中的第一個唯一字元LeetCode字串字元
- css如何設定字串中第一個字元的樣式CSS字串字元
- js刪除字串的第一個字元JS字串字元
- 字元流中第一個不重複的字元字元
- 查詢字串中第一個非重複字元的3種方法字串字元
- LeetCode C++ 387. First Unique Character in a String【String/Hash Table】簡單LeetCodeC++
- 在字串中,尋找第一個只出現一次的字元字串字元
- Java演算法面試題(004) 實現一個演算法來確定一個字串是否具有所有唯一的字元Java演算法面試題字串字元
- Python字串刪除第一個字元常用的方法!Python字串字元
- javascript獲取字串中第一個不重複字元程式碼例項JavaScript字串字元
- 【唯一】DISTINCT與UNIQUE的“區別”
- 劍指Offer 字元流中第一個不重複的字元字元
- js如何查詢字元處中第一個不重複的字元JS字元
- 《劍指offer》:[55]字元流中第一個不重複的字元字元
- Swift 字元(Character)講解Swift字元
- javascript刪除字串中的最後一個字元JavaScript字串字元
- JavaScript統計字串中重複字元的個數JavaScript字串字元
- 包含中文的字串中擷取前N個字元字串字元
- 統計字串中某個字元出現的次數字串字元
- PHP 判斷一個字元是否在字串中PHP字元字串
- 將字串每一個單詞第一個字元設定為大寫字串字元
- 2.刪除字串中的某個字元。(藉助字元陣列實現)字串字元陣列
- Python中查詢字串某個字元最常用的方法!Python字串字元
- 題目7:統計字串中的各種字元的個數字串字元
- 統計字串字元個數字串字元
- JavaScript刪除字串中的指定字元JavaScript字串字元
- . 【JAVA】給定任意 字串"yekmaakkccekymbvb",求出字串中有多少種字元,以及每個字元的個數?Java字串字元
- js字串中替換指定的的字元JS字串字元
- 唯一性索引(Unique Index)與普通索引(Normal Index)差異(中)索引IndexORM
- 獲得String字串中某個字元出現的次數字串字元