LeetCode - 387. First Unique Character in a String(HashTable, String, Queue, Counting)

YAMAMAMO·2022년 3월 1일
0

LeetCode

목록 보기
35/100

문제

문자열이 지정되면 문자열에서 반복되지 않는 첫 번째 문자를 찾아 인덱스를 반환합니다. 없으면 -1을 반환합니다.

https://leetcode.com/problems/first-unique-character-in-a-string/

Given a string , find the first non-repeating character in it and return its index. If it does not exist, return .s-1

Example 1:

Input: s = "leetcode"
Output: 0

Example 2:

Input: s = "loveleetcode"
Output: 2

Example 3:

Input: s = "aabb"
Output: -1

문제

자바입니다.

  • HashMap을 사용합니다. key - Character, Value Integer.
  • key 는 문자입니다. value 는 그 문자가 몇 개인지를 나타냅니다.
  • containsKey() 를 사용해서 문자가 key 값으로 있으면 Value를 하나씩 증가시킵니다.
    없으면 map에 key - 문자, value - 1 형태로 넣습니다.
  • map 의 value 가 1 이면 i 를 리턴합니다. 없으면 -1 리턴합니다.
class Solution {
    public int firstUniqChar(String s) {
        if(s.length()==1) return 0; 
        
        HashMap<Character, Integer> map = new HashMap<>();
        
        for(int i = 0; i<s.length(); i++){
            char c = s.charAt(i);
            if(map.containsKey(c)){
                int cnt = map.get(c)+1;
                map.put(c,cnt);
            }else{
                map.put(c,1);
            }
        }
        
        for(int i=0; i<s.length(); i++){
            char c = s.charAt(i);
            if(map.get(c)==1) return i;
        }
        
        return -1;
    }
}
profile
안드로이드 개발자

0개의 댓글