Easy
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
Constraints:
1 <= ransomNote.length, magazine.length <= 105
ransomNote
and magazine
consist of lowercase English letters.class Solution {
fun canConstruct(ransomNote: String, magazine: String): Boolean {
val a = IntArray(26)
var n = ransomNote.length
for (i in 0 until n) {
a[ransomNote[i].code - 97]++
}
var i = 0
while (i < magazine.length && n != 0) {
if (a[magazine[i].code - 97] > 0) {
n--
a[magazine[i].code - 97]--
}
i++
}
return n == 0
}
}