题目描述
若存在两个字符串:ransomNote 和 magazine ,要求判断 ransomNote 能不能由 magazine 里面的字符构成
如果可以,返回 true ;否则返回 false
重点:magazine 中的每个字符只能在 ransomNote 中使用一次
C 语言具体代码实现
bool canConstruct(char *ransomNote, char *magazine){
if(strlen(ransomNote) > strlen(magazine)){
return false;
}
int temp[100] = {-1}; // 临时索引数组
int index = 0; // 临时索引值
for(int i = 0; i < strlen(ransomNote); i++){
// ransomNote="aa";magazine="aab"
int j = 0;
for(; j < strlen(magazine); j++){
if(ransomNote[i] == magazine[j]){
temp[index++] = j; // temp[0] = 0;temp[1] = 0;temp[2] = 1;
break;
}
}
for(int k = 0; k < 100; k++){
if(temp[k] == j){
return false;
}
}
if(j == strlen(magazine)){
return false;
}
}
return true;
}