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
由小写英文字母组成
思路一 暴力循环
思路二 哈希数组
- 用一个长度为26的数组来记录magazine里字母出现的次数
- 再用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()
方法通常用于需要对字符串进行字符级别操作的情况。
通过将字符串转换为字符数组,我们可以对每个字符进行遍历、修改或其他操作,从而实现更灵活的字符串处理。