应用题-哈希表-赎金信
```python
from collections import defaultdict
class Solution:
# 给你两个字符串:ransomNote和magazine,判断ransomNote能不能由magazine里面的字符构成。
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
n = len( ransomNote )
m = len( magazine )
if n > m: return False
magazine_map = defaultdict( int )
for v in magazine: magazine_map[ v ] += 1
for v in ransomNote:
if v not in magazine_map: return False
if magazine_map[ v ] <= 0: return False
magazine_map[ v ] -= 1
return True
```