LeetCode383_383. 赎金信

LeetCode383_383. 赎金信

一、描述

给你两个字符串: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 由小写英文字母组成

二、题解

方法一:勒索信,其实就是判断第一个字符串是否可以由第二个字符串组成,每个字符只能被使用一次。
计算出第一个字符串里面的所有的元素以及次数,同理计算出第二个,第一个在第二个里面存在并小于次数即可

    /*
    执行结果:通过
    执行用时:21 ms, 在所有 Java 提交中击败了7.53%的用户
    内存消耗:42 MB, 在所有 Java 提交中击败了28.73%的用户
    通过测试用例:128 / 128
     */
    public boolean canConstruct(String ransomNote, String magazine) {
    
    
        boolean res = true;
    	/*if ("".equals(ransomNote)) {
			res =true;
		}*/
        Map<Character, Integer> map1 = new HashMap<Character, Integer>();
        Map<Character, Integer> map2 = new HashMap<Character, Integer>();
        for (int i = 0; i < ransomNote.length(); i++) {
    
    
            map1.put(ransomNote.charAt(i), (map1.get(ransomNote.charAt(i)) != null ? map1.get(ransomNote.charAt(i)) + 1 : 1));
        }
        for (int i = 0; i < magazine.length(); i++) {
    
    
            map2.put(magazine.charAt(i), (map2.get(magazine.charAt(i)) != null ? map2.get(magazine.charAt(i)) + 1 : 1));
        }
        for (Character key : map1.keySet()) {
    
    
            if (!map2.containsKey(key) || (map2.get(key) < map1.get(key))) {
    
    //注意判断的时候,正难则反!!!
                res = false;
                break;
            }
        }
        System.out.println("map1" + map1);
        System.out.println("map2" + map2);
        return res;
    }

LeetCode 367. 有效的完全平方数
LeetCode 371. 两整数之和
LeetCode 383. 赎金信
LeetCode 387. 字符串中的第一个唯一字符
LeetCode 389. 找不同
LeetCode 404. 左叶子之和
LeetCode 412. Fizz Buzz
LeetCode 414. 第三大的数
LeetCode 415. 字符串相加
LeetCode 434. 字符串中的单词数



声明:
        题目版权为原作者所有。文章中代码及相关语句为自己根据相应理解编写,文章中出现的相关图片为自己实践中的截图和相关技术对应的图片,若有相关异议,请联系删除。感谢。转载请注明出处,感谢。


By luoyepiaoxue2014

B站: https://space.bilibili.com/1523287361 点击打开链接
微博: http://weibo.com/luoyepiaoxue2014 点击打开链接

猜你喜欢

转载自blog.csdn.net/luoyepiaoxue2014/article/details/129929259