第一個只出現一次的字元——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;
}
}
相關文章
- 第一次只出現一次的字元字元
- 每日一練(23):第一個只出現一次的字元字元
- JZ-034-第一個只出現一次的字元位置字元
- (python版)《劍指Offer》JZ34:第一個只出現一次的字元Python字元
- [演算法練習及思路-leetcode劍指offer(Java解法)]No50.第一個只出現一次的字元演算法LeetCodeJava字元
- LeetCode 只出現一次的數字LeetCode
- 136只出現一次的數字
- 只出現一次的數字 II
- 給定一個非空整數陣列,除了某個元素只出現一次以外,其餘每個元素均出現兩次。找出那個只出現了一次的元素。陣列
- LeetCode 只出現一次的數字IIILeetCode
- LeetCode 只出現一次的數字IILeetCode
- 136. 只出現一次的數字
- 只出現一次的數字--力扣力扣
- LeetCode之只出現一次的數字-SwiftLeetCodeSwift
- LeetCode136 只出現一次的數字LeetCode
- 找出陣列中只出現一次的數字陣列
- 力扣136.只出現一次的數字力扣
- leetcode136. 只出現一次數字LeetCode
- LeetCode 136. 只出現一次的數字【c++/java詳細題解】LeetCodeC++Java
- 字元流中第一個不重複的字元字元
- leetcode力扣136.只出現一次的數字LeetCode力扣
- LeetCode每日一題:只出現一次的數字(No.136)LeetCode每日一題
- JZ-040-陣列中只出現一次的數字陣列
- Java實現第一個程式碼,輸出 hello worldJava
- Leetcode 137:只出現一次的數字 II(最詳細的解法!!!)LeetCode
- 2351. 第一次出現兩次的字母
- 在其它數都出現k次的陣列中找到只出現一次的數陣列
- 劍指Offer 字元流中第一個不重複的字元字元
- LeetCode 387. 字串中的第一個唯一字元 (Java)LeetCode字串字元Java
- 獲得String字串中某個字元出現的次數字串字元
- 利用HashMap統計字串各個字元出現的次數HashMap字串字元
- Java小程式--統計指定字串中字元 ‘a’ 出現的次數Java字串字元
- python 統計字串裡某個字元出現的次數count()Python字串字元
- java的第一次手記-----firstJava
- Python字串刪除第一個字元常用的方法!Python字串字元
- 定時器setInterval,只執行一次/第一次延遲執行定時器
- mysql mysqldump只匯出表結構或只匯出資料的實現方法MySql
- Java出現一個新的GC:LXRJavaGC