方法1:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int alp[30],alpc[30];
memset(alp,0,sizeof(alp));
memset(alpc,0,sizeof(alpc));
for(int i=0;magazine[i]!='\0';i++)
{
char c=magazine[i];
if(c>='a'&&c<='z')
alp[c-'a']++;
else if(c>='A'&&c<='Z')
alpc[c-'A']++;
}
for(int i=0;ransomNote[i]!='\0';i++)
{
char c=ransomNote[i];
if(c>='a'&&c<='z')
{
alp[c-'a']--;
if(alp[c-'a']<0)
return false;
}
else if(c>='A'&&c<='Z')
{
alpc[c-'A']--;
if(alpc[c-'A']<0)
return false;
}
}
return true;
}
};
方法2:
class Solution {
public:
bool canConstruct(string ransomNote, string magazine) {
int alp[256]={0};
for(int i=0;magazine[i]!='\0';i++)
alp[magazine[i]]++;
for(int i=0;ransomNote[i]!='\0';i++)
if(--alp[ransomNote[i]]<0)return false;
return true;
}
};