LeetCode刷題之383Python贖金信
阿新 • • 發佈:2019-01-05
題目:
給定一個贖金信 (ransom) 字串和一個雜誌(magazine)字串,判斷第一個字串ransom能不能由第二個字串magazines裡面的字元構成。如果可以構成,返回 true ;否則返回 false。
(題目說明:為了不暴露贖金信字跡,要從雜誌上搜索各個需要的字母,組成單詞來表達意思。)
注意:
你可以假設兩個字串均只含有小寫字母。
canConstruct("a", "b") -> false
canConstruct("aa", "ab") -> false
canConstruct("aa", "aab") -> true
我的解答:
和題350兩個陣列的交集II的思路一樣。先求出不重複元素集,再看贖金中的字元是否在雜誌中且兩者數目相等。
class Solution(object): def canConstruct(self, ransomNote, magazine): """ :type ransomNote: str :type magazine: str :rtype: bool """ if ransomNote == magazine: return True elif magazine == '': return False elif ransomNote == '' : return True r = set(ransomNote) m = set(magazine) for i in r: if i not in m: return False for i in r: c1 = ransomNote.count(i) c2 = magazine.count(i) if c1 > c2: return False return True