小菜鸡一枚
bool canConstruct(char * ransomNote, char * magazine){
//因为要求ransomNode是magazine的子串吧(我说是这么理解的)
int lenr=strlen(ransomNote),lenm=strlen(magazine);
if(lenr>lenm)//所以lenr不能比lenm大
{
return false;
}
int recordm[26]={0},recordr[26]={0};
for(int i=0;i<lenm;i++)
{
recordm[magazine[i]-'a']++;
}
for(int i=0;i<lenr;i++)
{
recordr[ransomNote[i]-'a']++;
}
//首先recordr不能位空,在这个情况下,recordm一定是大于recordr的,因为他算是母串吧
for(int i=0;i<26;i++)
{
if(recordr)
{
if(recordm[i]<recordr[i])
{
return false;
}
}
}
return true;
}