Solve in Python:
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
class Solution:
     def canConstruct(self, ransomNote, magazine):
         """
         :type ransomNote: str
         :type magazine: str
         :rtype: bool
         """
         r_map = {}
         for char in ransomNote:
             if char in r_map:
                 r_map[char] += 1
             else:
                 r_map[char] = 1
         m_map = {}
         for char in magazine:
             if char in m_map:
                 m_map[char] += 1
             else:
                 m_map[char] = 1
         for char, count in r_map.items():
             if char not in m_map:
                 return False
             if count > m_map[char]:
                 return False
         return True