# 383 Ransom Note

Given two stings `ransomNote` and `magazine`, return `true` if `ransomNote` can be constructed from `magazine` and `false` otherwise.

Each letter in `magazine` can only be used once in `ransomNote`.

Example 1:

``````Input: ransomNote = "a", magazine = "b"
Output: false
``````

Example 2:

``````Input: ransomNote = "aa", magazine = "ab"
Output: false
``````

Example 3:

``````Input: ransomNote = "aa", magazine = "aab"
Output: true
``````

Constraints:

• `1 <= ransomNote.length, magazine.length <= 105`
• `ransomNote` and `magazine` consist of lowercase English letters.
 ``````1 2 3 4 5 6 `````` ``````class Solution: def canConstruct(self, ransomNote: str, magazine: str) -> bool: for i in set(ransomNote): if ransomNote.count(i) > magazine.count(i): return False return True``````
 `````` 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 `````` ``````public class Solution { public boolean canConstruct(String ransomNote, String magazine) { int[] count = new int[26]; char[] mag = magazine.toCharArray(); for(char c : mag){ count[c-'a']++; } char[] ran = ransomNote.toCharArray(); for(char r : ran){ if(--count[r-'a'] < 0) return false; } return true; } }``````