第一個只出現一次的字符

使用map記錄他們出現的位置(如果只出現一次),取最小值即可。

import java.util.*;
import java.util.Map.Entry;///
public class Solution {
    public int FirstNotRepeatingChar(String str) {
        HashMap<Character,Integer>map=new HashMap<Character,Integer>();
        int l=str.length();
        for(int i=0;i<l;i++){
            char c=str.charAt(i);
            if(map.containsKey(c)){
                map.put(c,100100);
            }
            else{
                map.put(c,i);
            }
        }
        int minn=100100;
        for(Entry<Character,Integer>entry:map.entrySet()){
            int x=entry.getValue();
            if(x<minn){
                minn=x;
            }
        }
        if(minn==100100)
            return -1;
        return minn;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章