题解 | #农场智能管理系统#
农场智能管理系统
https://www.nowcoder.com/practice/a1461ace00224e5a9fc6ff3d1ae587e5
知识点
哈希
思路
使用两个map分别建立两个字符串中,每个字符到出现次数的映射,比较requirement的每个字符出现的个数,都需要小于allocation中对应字符的出现次数,才能返回"YES",否则返回"NO"
代码c++
class Solution {
public:
/**
* 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
*
*
* @param requirements string字符串
* @param allocations string字符串
* @return string字符串
*/
string can_construct(string requirements, string allocations) {
// write code here
map<int, int>a;
map<int, int>r;
for (int i = 0; i < requirements.size(); i++) {
r[requirements[i] - 'A']++;
}
for (int i = 0; i < allocations.size(); i++) {
a[allocations[i] - 'A']++;
}
for (int i = 0; i <= 25; i++) {
// cout << r[i] << " " << a[i] << endl;
if (r[i] > a[i])return "NO";
}
return "YES";
}
};