字符串:第一個只出現一次的字符

題目描述
在一個字符串(0<=字符串長度<=10000,所有由字母組成)中找到第一個只出現一次的字符,並返回它的位置, 若是沒有則返回 -1(須要區分大小寫).(從0開始計數)java

思路:

用相似hash的數組來存儲便可,數組下標表明字符的ASCII碼,值表明出現的次數。

第一次遍歷用來存儲;
第二次遍歷就找出第一個值爲1的數組下標便可。數組

代碼:

public class Solution {
    public int FirstNotRepeatingChar(String str) {
        if(str==null || str.length()==0) return -1;
        int[] count=new int[58]; //ASCII碼中從大寫-小寫的總數
        for(int i=0;i<str.length();i++){
            count[str.charAt(i)-'A']++;
        }
        for(int i=0;i<str.length();i++){
            if(count[str.charAt(i)-'A']==1){
                return i;
            }
        }
        return -1;
    }
}
相關文章
相關標籤/搜索