직관적인 문제다, 최초로 반복되지 않는 수 를 찾는 것이다. 소문자만 주어진다고 했으니 배열을 이용해서 작성해보자.
class Solution {
public int firstUniqChar(String s) {
int[] alphabets = new int[26];
for(char c : s.toCharArray()){
alphabets[c-'a']++;
}
for (int i = 0; i < s.length(); i++) {
if(alphabets[s.charAt(i) - 'a'] == 1){
return i;
}
}
return -1;
}
}
알파벳 배열을 만들고 숫자를 기록해 다음연산에서 활용해주는 것이다, 만약 대 소 문자에 특수문자까지 사용된다면, 해쉬 맵을 이용하면 더 좋은 선택지가 될 수 있다. 배열을 늘려도 상관은 없지만 비효율적이다.
'PS > LeetcCode' 카테고리의 다른 글
33. Search in Rotated Sorted Array (0) | 2022.07.04 |
---|---|
34. Find First and Last Position of Element in Sorted Array (0) | 2022.07.03 |
53. Maximum Subarray (0) | 2022.06.29 |
242. Valid Anagram (0) | 2022.06.26 |
383. Ransom Note (0) | 2022.06.26 |