LeetCode383 —赎金信

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

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值