Valid Anagram - 리트코드

김태훈·2023년 8월 31일
0
post-thumbnail

https://leetcode.com/problems/valid-anagram

평가

결과 : 성공
풀이시간 : 7분

아이디어

문자열 s를 입력받아 각 문자열에 들어있는 알파벳들의 개수를 셉니다.
알파벳은 소문자만 가능하기 때문에 26 크기의 int 배열 alpha 에 각 알파벳이 나온 횟수를 저장합니다.

문자열 t를 입력받아, 각 문자열을 하나씩 확인합니다.
확인한 문자열이 alpha에 존재하면 크기를 하나 줄여줍니다.
만약 확인한 문자열이 alpha에 존재하지 않으면 결과는 false가 됩니다.

간단한 문제라 수도코드는 생략하겠습니다.

정답 코드

class Solution {
    public boolean isAnagram(String s, String t) {
    	// 길이가 다르면 Anagram이 될 수 없습니다.
        if (s.length() != t.length()) {
            return false;
        }
        
        int[] alpha = new int[26];
        char[] chars = s.toCharArray();
        for(char each: chars) {
            alpha[(int) each - 'a'] += 1;
        }
		

        char[] charsAboutT = t.toCharArray();
        boolean answer = true;
        for(char each: charsAboutT) {
	        // 확인하는 문자가 alpha에 들어있는지 확인합니다        
            if (alpha[(int) each - 'a'] == 0) {
                answer = false;
                break;
            }
            alpha[(int) each - 'a'] -= 1;
        }

        return answer;
    }
}
profile
작은 지식 모아모아

0개의 댓글