LeetCode | 383 RanSom Note

分析

赎金信在侦探系列是容易出现的场景,为了不暴露自己的笔迹,利用一本杂志里面已有的字符来组装自己的信。倘若这本杂志的字符不够,那么赎金信就无法完成。这道题与Valid-Anagram本质上是一致的。Anagram要求字符类型和数量完全一致,本题要求杂志里面所有的字符串类型和数量是赎金信的超集

这道题就不花太多时间再继续深究

主类

class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
        if ( ransomNote == null || magazine == null) {
            return false;
        }  

        if (magazine.length() ==0 || magazine.length() < ransomNote.length()) {
            return false;
        }
    

        int[] arraybucket = new int[26];

        for(int i = 0; i < magazine.length(); i++) {
            arraybucket[magazine.charAt(i) - 'a']++;
        }

        for(int i = 0; i < ransomNote.length(); i++) {
            arraybucket[ransomNote.charAt(i) - 'a']--;

            if (arraybucket[ransomNote.charAt(i)- 'a'] < 0) {
                return false;
            }
        }

        return true;

    }
}
posted @ 2024-08-09 17:08  Neking  阅读(3)  评论(0编辑  收藏  举报