코딩 테스트/LeetCode

242. Valid Anagram (유효한 애너그램)

포카리tea 2024. 9. 25. 14:57

두 개의 문자열 s와 t가 주어졌을 때, t가 s의  애너그램일 경우 true를 그렇지 못할 경우 false를 반환합니다.

 

예시 1:

입력: s = "anagram", t = "nagaram"
출력: true

 

예시 2:

입력: s = "rat", t = "car"
출력: false

 

 

 

조건:

  • 1 <= s.length, t.length <= 5 * 10^4
  • s와 t는 소문자 영어로 구성됩니다.

 

정답:

public class Solution {
    public bool IsAnagram(string s, string t) {
        if (s.Length != t.Length)
        {
            return false;
        }

        while (s != string.Empty)
        {
            char split = s[0];
            s = s.Replace(split.ToString(), "");
            t = t.Replace(split.ToString(), "");

            if (s.Length != t.Length)
            {
                return false;
            }
        }
        
        return true;
    }
}

해설: s와 t를 동일한 문자 split을 제거했을 때 길이가 동일하다면 해당 문자는 확인이 된 것이므로 해당 작업을 반복하여 모두 제거된다면 true를 반환하고 길이가 동일하지 않다면 false를 반환합니다.

만약 처음부터 길이가 맞지 않는 경우는 애너그램이 아니므로 false를 반환합니다.