LeetCode 383. Ransom Note

LeetCode 383. Ransom Note

LeetCode 383. Ransom Note (赎金信)

题目

链接

https://leetcode.cn/problems/ransom-note/

问题描述

给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。

如果可以,返回 true ;否则返回 false 。

magazine 中的每个字符只能在 ransomNote 中使用一次。

示例

输入:ransomNote = "a", magazine = "b"
输出:false

提示

1 <= ransomNote.length, magazine.length <= 105
ransomNote 和 magazine 由小写英文字母组成

思路

用数组存放有的字母,然后进行选取,超过范围就不行。

用哈希表也行,但是字母只有26个,会省一点。

复杂度分析

时间复杂度 O(n)空间复杂度 O(1)

代码

Java

    public boolean canConstruct(String ransomNote, String magazine) {        int[] word = new int[26];        char[] r = ransomNote.toCharArray();        char[] m = magazine.toCharArray();        for (char c : m) {            word[c - 'a']++;        }        for (char c : r) {            word[c - 'a']--;            if (word[c - 'a'] < 0) {                return false;            }        }        return true;    }
免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部