力扣每日一题2021-12-04赎金信

赎金信


383.赎金信

题目描述

赎金信


思路

字符统计

依据题意要求,使用magazine中的字符构建新的字符串ransomNote,且ransomNote中的每个字符只能使用一次,只需要满足字符串中每个英文字母的统计次数都大于等于randomNote中相同字母的统计次数即可。

Python实现

力扣每日一题2021-12-04赎金信

class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        if len(ransomNote) > len(magazine):
            return False
        return not collections.Counter(ransomNote) - collections.Counter(magazine)

Java实现

力扣每日一题2021-12-04赎金信

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        if (ransomNote.length() > magazine.length()) {
            return false;
        }
        int[] cnt = new int[26];
        for (char c: magazine.toCharArray()) {
            cnt[c - 'a']++;
        }
        for (char c:ransomNote.toCharArray()) {
            cnt[c - 'a']--;
            if (cnt[c - 'a'] < 0) {
                return false;
            }
        }
        return true;
    }
}
上一篇:MySQL获取当前日期和时间函数


下一篇:电商互动消息如何进行架构演进?