0
点赞
收藏
分享

微信扫一扫

《力扣刷题》数据结构(赎金信)

题目描述

若存在两个字符串: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;
}
举报

相关推荐

0 条评论