Leetcode/Top Interview 150

[Hashmap][Easy] 242. Valid Anagram

자전거통학 2024. 5. 6. 09:19

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

 

Q. 주어진 문자열 t와 s가 anagram 한지 판단하라. 

 

 

Solution. 

 Anagram의 특성을 이용하여 한 string에 frequency buffer를 만들고 다른 문장에서 이것과 비교한다. 

 

public bool IsAnagram(string s, string t) 
{
    Dictionary<char, int> dictFreq = new Dictionary<char, int>();
    for(int q = 0; q < s.Length; ++q)
    {
        char cur = s[q];
        if(dictFreq.ContainsKey(cur))
            ++dictFreq[cur];
        else 
            dictFreq.Add(cur, 1);
    }

    for(int q = 0; q < t.Length; ++q)
    {
        char cur = t[q];
        if(!dictFreq.ContainsKey(cur))
            return false;

        --dictFreq[cur];
        if(dictFreq[cur] == 0)
            dictFreq.Remove(cur);
    }
    return dictFreq.Count==0;
}

 

 

결과.