383. Ranson Note

種類 : string
難度 : easy
題目 : 383.Ranson Note

思維邏輯

  1. 使用Counter模組計算兩個字串每一個元素的數量(e.g. Counter(“aab”), 回傳{‘a’: 2, ‘b’: 1})
  2. 將兩個字串的元素做 AND 運算(e.g. {‘a’: 2, ‘b’: 1} & {‘a’: 2} == {‘a’: 2})
  3. 其結果等於ransonNote 則回傳True, 否則回傳Fasle(可判斷magazine使否在ransonNate當中)

解法

難點

  1. Counter模組屬於dict的型態, 會回傳key與value值, 且需要額外載入模組
  2. 利用 AND 篩出相同的部分

最佳解法

1
2
3
4
5
6
7
8
from collections import Counter #引入Counter模組
ransonNote = "aa"
magazine = "aab"

str1, str2= Counter(ransonNote), Counter(magazine)
if str1 & str2 == str1:
return True
return False