383. 赎金信 --力扣 --JAVA

简介: 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能c里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。

 题目

给你两个字符串:ransomNotemagazine ,判断 ransomNote 能c里面的字符构成。

如果可以,返回 true ;否则返回 false

magazine 中的每个字符只能在 ransomNote 中使用一次。

解题思路

    1. 先获取ransomNote 中每个字符的数量;
    2. 遍历ransomNote查看对应元素的数量是否充足。

    代码展示

    class Solution {
        public boolean canConstruct(String ransomNote, String magazine) {
            Map<Character,Integer> data = new HashMap<>();
            for(int i = 0; i < ransomNote.length(); i++){
                char temp = ransomNote.charAt(i);
                Integer num = data.getOrDefault(temp, 0);
                num += 1;
                data.put(temp, num);
            }
            for(int i = 0; i < magazine.length(); i++){
                char temp = magazine.charAt(i);
                Integer num = data.get(temp);
                if(num != null){
                    if(num == 1){
                        data.remove(temp);
                    } else {
                        data.put(temp, num - 1);
                    }
                }
            }
            return data.isEmpty();
        }
    }

    image.gif


    目录
    相关文章
    |
    1月前
    |
    算法 Java
    LeetCode(一)Java
    LeetCode(一)Java
    |
    3月前
    |
    算法 Java
    LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
    LeetCode经典算法题:矩阵中省份数量经典题目+三角形最大周长java多种解法详解
    52 6
    |
    3月前
    |
    存储 算法 Java
    LeetCode经典算法题:打家劫舍java详解
    LeetCode经典算法题:打家劫舍java详解
    70 2
    |
    3月前
    |
    人工智能 算法 Java
    LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
    LeetCode经典算法题:井字游戏+优势洗牌+Dota2参议院java解法
    50 1
    |
    3月前
    |
    存储 算法 Java
    LeetCode经典算法题:预测赢家+香槟塔java解法
    LeetCode经典算法题:预测赢家+香槟塔java解法
    60 1
    |
    3月前
    |
    存储 算法 Java
    LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
    LeetCode经典算法题:二叉树遍历(递归遍历+迭代遍历+层序遍历)以及线索二叉树java详解
    79 0
    |
    3月前
    |
    算法 Java
    LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
    LeetCode初级算法题:环形链表+排列硬币+合并两个有序数组java解法
    54 0
    |
    3月前
    |
    存储 算法 Java
    LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
    LeetCode初级算法题:两数之和+斐波拉契数列多种java解法
    39 0
    |
    3月前
    |
    算法 Java 索引
    LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
    LeetCode初级算法题:寻找数组的中心索引+x的平方根+三个数的最大乘积+Leetcode 149:直线上最多的点数 Java详解
    36 0
    |
    3月前
    |
    存储 算法 Java
    LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
    LeetCode初级算法题:反转链表+统计N以内的素数+删除排序数组中的重复项Java详解
    45 0