Monday, October 21, 2024

Ransom Note

Given two strings ransomNote and magazine, return true if ransomNote can be constructed by using the letters 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

Solution

class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
int[] count = new int[26];
// build lookup array with the letters in magazine
for(Character c:magazine.toCharArray()){
count[c-'a']++;
}
// check ransome can be constructed by using letters from magazine
for(Character c:ransomNote.toCharArray()){
count[c-'a']--;
if(count[c-'a']<0){
return false;
}
}
return true;
}
}


No comments:

Post a Comment