LeetCode刷题记录.Day11

赎金信

题目链接代码随想录 (programmercarl.com)

class Solution {
public:
    bool canConstruct(string ransomNote, string magazine) {
        int record[26] = {0};
        if (ransomNote.size() > magazine.size()) {
            return false;
        }
        for(char a : magazine){
            record[a - 'a']++; //记录magazine出现的字符
        }
        for(char a : ransomNote){
            record[a - 'a']--; //记录ransomNote出现的字符
        }
        for(int num : record){
            if(num < 0){
                return false; //此时如果数组中有元素小于零,说明有字符在ransomNote出现过但是在magazine没出现过
            }
        }
        return true;
    }
};

本题思路同上。作为一道同样需要快速查找字符的题,同样可以构造字符数组来进行查询。具体的思路和之前的异位字符串相类似。

posted @ 2022-11-10 21:36  凱風快晴  阅读(17)  评论(0)    收藏  举报