Leetcode/Top Interview 150

[Hashmap][Easy] 383. Ransom Note

자전거통학 2024. 5. 4. 23:01

https://leetcode.com/problems/ransom-note/description

 

Q. 주어진 두개의 문자열 ransomNote와 magazine이 있다. magazine의 단어로 ransomNote의 문장을 구성할 수 있는지 여부를 반환하라. 

 

 

Solution. 

 hash 류의 간단한 문제. 

 

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

    for(int q = 0; q < ransomNote.Length; ++q)
    {
        char cur = ransomNote[q];
        if(!dictFreq.ContainsKey(cur))
            return false;
        --dictFreq[cur];
        if(dictFreq[cur] == 0)
            dictFreq.Remove(cur);
    }
    return true;
}

 

 

 

결과.