leetcode383赎金信
题目链接:leetcode
思路分析
题目中的字母都是小写字符,所以我们考虑使用数组利用哈希算法进行映射,我们将magazine数组进行映射,将其在指定的位置进行加1.
然后我们对randomNote进行遍历,将映射的位置进行减一,最后我们看数组中有没有小于0的数就好了,如果有小于0的数那就证明数组中有其他的元素,那就不对,直接返回false,如果没有小于0的那就返回true。
代码
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
int[] nums = new int[26];
for (int i = 0; i < magazine.length(); i++) {
nums[magazine.charAt(i) - 'a'] += 1;
}
for (int i = 0; i < ransomNote.length(); i++) {
nums[ransomNote.charAt(i) - 'a'] -= 1;
}
for (int num : nums) {
if (num < 0){
return false;
}
}
return true;
}
}