在一個字符串中找到第一個只出現一次的字符,並返回它的位置。java
Input: abacc Output: b
解題思路:數組
最直觀的解法是使用 HashMap 對出現次數進行統計,可是考慮到要統計的字符範圍有限,所以能夠使用整型數組代替 HashMap,從而將空間複雜度由 O(N) 下降爲 O(1)。code
public class Solution { public int FirstNotRepeatingChar(String str) { int[] cnts = new int[256]; //建立數組 for(int i =0;i<str.length();i++) //遍歷 cnts[str.charAt(i)]++; for(int i =0;i<str.length();i++) if(cnts[str.charAt(i)] == 1) return i; return -1; } }