第一個只出現一次的字元——Java

Strom72發表於2018-06-19

在一個字串(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;
    }
}

相關文章