LeetCode | 383 RanSom Note

Neking發表於2024-08-09

分析

贖金信在偵探系列是容易出現的場景,為了不暴露自己的筆跡,利用一本雜誌裡面已有的字元來組裝自己的信。倘若這本雜誌的字元不夠,那麼贖金信就無法完成。這道題與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;

    }
}

相關文章