1. 程式人生 > >383. Ransom Note (Easy)

383. Ransom Note (Easy)

count ngs blog cti 利用 con self ted lec

Given an arbitrary ransom note string and another string containing letters from all the magazines, write a function that will return true if the ransom note can be constructed from the magazines ; otherwise, it will return false.

Each letter in the magazine string can only be used once in your ransom note.

Note:
You may assume that both strings contain only lowercase letters.

canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true

題意:判斷magazine中的字符是否可以組成ransom note所需要的那些字符;
思路:
1.利用Python的collections.Counter()統計字符個數,然後做差即可;
2.當ransomCnt大於magazineCnt時,返回false;
class Solution():
    def canConstruct(self, ransomNote, magazine):
        """
        :type ransomNote: str
        :type magazine: str
        :rtype: bool
        """
        ransomCnt = collections.Counter(ransomNote)
        magazineCnt = collections.Counter(magazine)
        return not ransomCnt - magazineCnt

383. Ransom Note (Easy)