题目链接
解题思路
统计法
- 采用一个数组来记录
magazine
中各个字符的出现次数,然后遍历ransomNote
时,如果ransomNote
中出现了对应的字符,那么就将值减去1
,遍历结束后,如果数组中有元素小于0
,则说明ransomNote
不能由magaz
里面的字符构成,返回false
AC代码
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
int[] record = new int[26];
char[] s1 = ransomNote.toCharArray();
char[] s2 = magazine.toCharArray();
for (char c : s2) {
record[c - 'a'] += 1;
}
for (char c : s1) {
record[c - 'a'] -= 1;
}
for (int i : record) {
if (i < 0) {
return false;
}
}
return true;
}
}