题目
代码(首刷自解)
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char, int> map;
for(char c: magazine) map[c]++;
for(char c: ransomNote) {
map[c]--;
if(map[c] == -1)
return false;
}
return true;
}
};
代码(11.18 二刷自解 Java第一天刷题)
哈希表
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
char[] str1 = ransomNote.toCharArray();
char[] str2 = magazine.toCharArray();
Map<Character, Integer> map = new HashMap<>();
for(char c : str2) {
if(map.containsKey(c)) {
map.put(c, map.get(c) + 1);
} else {
map.put(c, 1);
}
}
for(char c : str1) {
if(map.containsKey(c)) {
int val = map.get(c) - 1;
if(val == 0) {
map.remove(c);
} else {
map.put(c, val);
}
} else {
return false;
}
}
return true;
}
}
数组
class Solution {
public boolean canConstruct(String ransomNote, String magazine) {
int[] record = new int[26];
for(char c : magazine.toCharArray()) {
record[c-'a']++;
}
for(char c : ransomNote.toCharArray()) {
record[c-'a']--;
if(record[c-'a'] < 0)
return false;
}
return true;
}
}