383. 赎金信(c++/go/哈希)

阅读 56

2022-05-03

在这里插入图片描述
在这里插入图片描述

c++:

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        int record[26] = {};
        for(int i = 0; i < magazine.size();i++){
            // 通过recode数据记录 magazine里各个字符出现次数
            record[magazine[i] - 'a']++;
        }

        for(int i = 0; i < ransomNote.size();i++){
            // 遍历ransomNote,在record里对应的字符个数做--操作
            record[ransomNote[i] - 'a']--;
             // 如果小于零说明ransomNote里出现的字符,magazine没有
            if(record[ransomNote[i] - 'a'] < 0){
                return false;
            }
        }
        return true;
    }
};

go:

func canConstruct(ransomNote string, magazine string) bool {
    record := make([]int,26)
    for _,v := range magazine{
        record[v - 'a']++
    }
    for _,v := range ransomNote{
        record[v - 'a']--
        if(record[v - 'a'] < 0){
            return false
        }
    }
    return true
}

精彩评论(0)

0 0 举报