-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path383 Ransom Note.py
36 lines (27 loc) · 935 Bytes
/
383 Ransom Note.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
"""
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
Author: Rajeev Ranjan
"""
from collections import defaultdict
class Solution(object):
def canConstruct(self, ransomNote, magazine):
"""
:type ransomNote: str
:type magazine: str
:rtype: bool
"""
d = defaultdict(int)
for e in magazine:
d[e] += 1
for e in ransomNote:
if d[e] == 0:
return False
d[e] -= 1
return True