題目描述
在一個字符串(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; } }