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;
}
결과.

'Leetcode > Top Interview 150' 카테고리의 다른 글
| [Hashmap][Easy] 202. Happy Number (0) | 2024.05.07 |
|---|---|
| [Hashmap][Medium] 49. Group Anagrams (0) | 2024.05.07 |
| [Hashmap][Easy] 290. Word Pattern (0) | 2024.05.06 |
| [Hashmap][Easy] 205. Isomorphic Strings (0) | 2024.05.04 |
| [Hashmap][Easy] 383. Ransom Note (0) | 2024.05.04 |