key: map
Runtime: 232 ms
No reference
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
bool res = true;
map<char, int> m;
for(auto i : magazine)
{
if(m.count(i))
m[i]++;
else
m.insert(pair<char, int>(i, 1));
}
for(auto j : ransomNote)
{
if(m.count(j))
m[j]--;
else
{
res = false;
break;
}
if(m[j] < 0)
{
res = false;
break;
}
}
return res;
}
};
Update: array
Runtime: 35 ms
Reference: discuss
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
bool res = true;
int nums[26] = {0};
for(char i : magazine)
nums[i - 'a']++;
for(char j : ransomNote)
{
nums[j - 'a']--;
if(nums[j - 'a'] < 0)
{
res = false;
break;
}
}
return res;
}
};