직관적인 문제다, 최초로 반복되지 않는 수 를 찾는 것이다. 소문자만 주어진다고 했으니 배열을 이용해서 작성해보자.

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

+ Recent posts