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

383. 赎金信(c++/go/哈希)_第1张图片
383. 赎金信(c++/go/哈希)_第2张图片

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
}

你可能感兴趣的:(力扣刷题笔记,哈希算法,c++,散列表,go)