Given a string s, find the first non-repeating character in it and return its index. If it does not exist, return -1.
Input: s = "leetcode"
Output: 0
Input: s = "loveleetcode"
Output: 2
Input: s = "aabb"
Output: -1
class Solution {
public static int firstUniqChar(String s) {
int[] arr = new int[26];
for (int i = 0; i < s.length(); i++) {
int ascii = ((int) s.charAt(i)) - 97;
arr[ascii]++;
}
for (int i = 0; i < s.length(); i++) {
int ascii=((int) s.charAt(i)) - 97;
if (arr[ascii] == 1) return i;
}
return -1;
}
}
Tip
- ascii code 범위 ? a : z = 97 : 122
- a~z 의 개수 ? 26개
- String s의 문자에는 s[i]로는 접근할 수 없고,
s.charAt(i)로 접근해야 한다.