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