383哈希表-赎金信

Posted 孤注一掷 、

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了383哈希表-赎金信相关的知识,希望对你有一定的参考价值。

题目

 链接:383. 赎金信 - 力扣(LeetCode)

思路

用空间换时间,26大小的数组,判断第一个字符串ransom能不能由第二个字符串magazines里面的字符构成。

注意,杂志里的字母不可重复使用,出现几次算几次,第二次遍历出现一次减一次

如果为负数说明没出现。

代码

class Solution 
    public boolean canConstruct(String ransomNote, String magazine) 
        int[] record = new int[26];
        for(char c : magazine.toCharArray())
            record[c - 'a'] += 1;
        
        for(char c : ransomNote.toCharArray())
            record[c - 'a'] -= 1;
        
        //如果数组中存在负数,说明ransomNote字符串总存在magazine中没有的字符
        for(int i : record)
            if(i < 0)
                return false;
            
        

    return true;
    

以上是关于383哈希表-赎金信的主要内容,如果未能解决你的问题,请参考以下文章

383. 赎金信

LeetCode 383. 赎金信

LeetCode:383. 赎金信————简单

每日leetcode-数组-383. 赎金信

LeetCode 383. 赎金信 / 372. 超级次方 / 1816. 截断句子

383 Ransom Note 赎金信