使用c++ hashmap实现(无序unordered_map):
读取T中的所有字符,对字符value加一。
读取S中所有字符,对map中的对应字符减一。
最后遍历一遍map,如果发现了有任意一个value小于0,说明S的字符数量超过T中字符了,返回false。
否则返回true。
#include <unordered_map>
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
unordered_map<char, int> m;
for(char i:magazine) m[i]++;
for(char i:ransomNote) m[i]--;
for(auto [i,j]:m){
if(j<0) return false;
}
return true;
}
};

京公网安备 11010502036488号