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进行投诉反馈,一经查实,立即删除!