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