1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
| class Solution { public int firstUniqChar(String s) { int[] charToIndexArray = new int[26]; Arrays.fill(charToIndexArray, -1);
int[] charToCountArray = new int[26]; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); int offset = c - 'a';
charToCountArray[offset]++; if (charToIndexArray[offset] == -1) { charToIndexArray[offset] = i; } }
int minIndex = Integer.MAX_VALUE; for (int i = 0; i < charToCountArray.length; i++) { if (charToCountArray[i] == 1) { minIndex = Math.min(minIndex, charToIndexArray[i]); } }
return minIndex == Integer.MAX_VALUE ? -1 : minIndex; } }
|
References
387. First Unique Character in a String