LeetCode383 —赎金信

发布于:2024-03-18 ⋅ 阅读:(61) ⋅ 点赞:(0)

LeetCode383

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

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

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

示例 1:

输入:ransomNote = “a”, magazine = “b” 输出:false 示例 2:

输入:ransomNote = “aa”, magazine = “ab” 输出:false 示例 3:

输入:ransomNote = “aa”, magazine = “aab” 输出:true

提示:

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


思路一 暴力循环

思路二 哈希数组

  1. 用一个长度为26的数组来记录magazine里字母出现的次数
  2. 再用ransomNote去验证这个数组是否包含了ransomNote所需要的字母
class Solution {
    public boolean canConstruct(String ransomNote, String magazine) {
       if(ransomNote.length() > magazine.length()){
        return false;
       }

       //定义一个大小为26的数组用于记录每个字母出现的次数
       int [] cnt = new int[26];
       //toCharArray() 是一个字符串方法,用于将字符串转换为字符数组。
       //增强for循环无需显式地访问索引来获取每个元素,而是直接通过遍历对象中的元素来进行迭代
       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;
    }
}

toCharArray() 是一个字符串方法,用于将字符串转换为字符数组。

在Java中,toCharArray() 方法是定义在字符串(String)类中的一个方法。它将调用该方法的字符串转换为一个新的字符数组。该方法没有参数,返回类型为 char[]。

以下是一个示例代码:

String str = "Hello";
char[] charArray = str.toCharArray();

在上述示例中,我们首先创建了一个字符串 str,其值为 “Hello”。然后,我们调用 toCharArray() 方法将字符串转换为字符数组,并将结果存储在 charArray 变量中。此时,charArray 将包含字符 ‘H’、‘e’、‘l’、‘l’ 和 ‘o’。

toCharArray() 方法通常用于需要对字符串进行字符级别操作的情况。
通过将字符串转换为字符数组,我们可以对每个字符进行遍历、修改或其他操作,从而实现更灵活的字符串处理。

本文含有隐藏内容,请 开通VIP 后查看