0383 - 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.
Examples
Input: ransomNote = "a", magazine = "b" Output: false
Input: ransomNote = "aa", magazine = "ab" Output: false
Input: ransomNote = "aa", magazine = "aab" Output: true
Constraints
1 <= ransomNote.length, magazine.length <= 105 ransomNote and magazine consist of lowercase English letters.
Java Solution
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
if(ransomNote.length() > magazine.length()) return false;
HashMap<Character, Integer> hm = new HashMap<>();
for(int i = 0; i < magazine.length(); i++) {
hm.put(magazine.charAt(i), hm.getOrDefault(magazine.charAt(i), 0) + 1);
}
for(char c : ransomNote.toCharArray()) {
if(hm.containsKey(c) && hm.get(c) > 0) hm.put(c, hm.get(c)-1);
else return false;
}
return true;
}
}
Last updated