leetcode 每日一题 2024年01月07日 赎金信
2024-01-07 18:44:31
题目
给你两个字符串: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
由小写英文字母组成
分析
magazine
中的每个字符只能在 ransomNote
中使用一次:
-
说明magazine中的字符串长度要大于等于ransomNote中字符串的长度
-
并且magazine中字符的种类和数量都必须大于等于ransomNote。
-
由于2个字符中都只有两个小写字母,所以只用大小为26的int数组来记录magazine中,字符串的种类和数量。
int [] cnt = new int[26];
编码
根据前面的分析进行编码
class Solution {
int [] cnt = new int[26];
public boolean canConstruct(String ransomNote, String magazine) {
if (ransomNote.length() > magazine.length()) {
return false;
}
char [] mChars = magazine.toCharArray();
char [] rChars = ransomNote.toCharArray();
for (char mChar : mChars) {
cnt[mChar-'a']++;
}
for (char rChar : rChars) {
//每读取到一个 对应的count减1
if(--cnt[rChar-'a']<0) return false;
}
return true;
}
}
结果
qq交流群:
文章来源:https://blog.csdn.net/h88888888888/article/details/135438759
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!