第一個只出現一次的字元——Java
在一個字串(1<=字串長度<=10000,全部由字母組成)中找到第一個只出現一次的字元,並返回它的位置。
可以通過空間換取時間的方式來降低時間複雜度,最簡單的想法是通過一個map來儲存字母以及它出現過的次數,然後再從頭遍歷一邊,找到第一個只出現過一次的數,程式碼如下:
import java.util.*;
public class Solution {
public int FirstNotRepeatingChar(String str) {
if(str.equals(""))
return -1;
Map<Character,Integer> map=new HashMap<>();
for(int i=0;i<str.length();i++){
if(map.get(str.charAt(i))!=null){
map.put(str.charAt(i),1+map.get(str.charAt(i)));
}else{
map.put(str.charAt(i),1);
}
}
for(int i=0;i<str.length();i++){
if(map.get(str.charAt(i))==1){
return i;
}
}
return 0;
}
}
相關文章
- 第一次只出現一次的字元字元
- 【劍指offer】第一個只出現一次的字元字元
- JZ-034-第一個只出現一次的字元位置字元
- 每日一練(23):第一個只出現一次的字元字元
- 在字串中,尋找第一個只出現一次的字元字串字元
- [劍指Offer]面試題35:第一個只出現一次的字元面試題字元
- 第一個值出現一次的字元字元
- (python版)《劍指Offer》JZ34:第一個只出現一次的字元Python字元
- 1.7程式設計基礎之字串02:找第一個只出現一次的字元程式設計字串字元
- [演算法練習及思路-leetcode劍指offer(Java解法)]No50.第一個只出現一次的字元演算法LeetCodeJava字元
- 只出現一次的數字 II
- 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。陣列
- 136. 只出現一次的數字
- LeetCode 只出現一次的數字LeetCode
- LeetCode 只出現一次的數字IILeetCode
- LeetCode 只出現一次的數字IIILeetCode
- 找出陣列中只出現一次的數字陣列
- LeetCode之只出現一次的數字-SwiftLeetCodeSwift
- LeetCode136 只出現一次的數字LeetCode
- 字元流中第一個不重複的字元字元
- JZ-040-陣列中只出現一次的數字陣列
- 劍指offer 陣列中只出現一次的數字陣列
- leetcode136. 只出現一次數字LeetCode
- 使用cookie讓彈窗只出現一次程式碼Cookie
- LeetCode 136. 只出現一次的數字【c++/java詳細題解】LeetCodeC++Java
- Java實現第一個程式碼,輸出 hello worldJava
- leetcode力扣136.只出現一次的數字LeetCode力扣
- 《劍指offer》:[40]陣列中只出現一次的數字陣列
- 【劍指offer】陣列中只出現一次的數字(1)陣列
- 【劍指offer】陣列中只出現一次的數字(2)陣列
- 在其它數都出現k次的陣列中找到只出現一次的數陣列
- LeetCode每日一題:只出現一次的數字(No.136)LeetCode每日一題
- javascript獲取指定元素第一次出現的位置JavaScript
- 劍指Offer 字元流中第一個不重複的字元字元
- js刪除字串的第一個字元JS字串字元
- 如何計算字串某個字元出現的次數字串字元
- 統計字串中某個字元出現的次數字串字元
- 2351. 第一次出現兩次的字母