387. First Unique Character in a String 发表于 2022-01-17 1234567891011121314151617181920212223242526class 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'; // 注意此处减去 a 而不是减去 0 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; }} Reference387. First Unique Character in a String