欢乐力扣:赎金信

文章目录


1、题目描述

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

2、 代码

python 复制代码
class Solution:
    def canConstruct(self, ransomNote: str, magazine: str) -> bool:
        from collections import defaultdict
        # 构造字典存储字符串的字母和数量
        ref_dic = defaultdict(int)
        for char in magazine:
            ref_dic[char] +=1
        # 遍历
        for char in ransomNote:
            if char in ref_dic:
                ref_dic[char] -=1  
                # 如果减到0了,则需要彻底移除这个key
                if ref_dic[char] == 0:
                    del ref_dic[char] 
            else:
                return False 
        return True 
相关推荐
Swift社区2 分钟前
LeetCode 442 - 数组中重复的数据
算法·leetcode·职场和发展
努力学算法的蒟蒻5 分钟前
day25(12.5)——leetcode面试经典150
算法·leetcode·职场和发展
xlq223226 分钟前
23.二叉树搜索树(下)
数据结构·c++·算法
玩具猴_wjh15 分钟前
快手(安全方向)面试
安全·面试·职场和发展
lzh2004091924 分钟前
【数据结构】二叉搜索树
数据结构·算法
c#上位机33 分钟前
halcon图像膨胀—dilation1
图像处理·算法·c#·halcon
RickyWasYoung34 分钟前
【聚类算法】高维数据的聚类
算法·数据挖掘·聚类
古月居GYH40 分钟前
数据结构算法——排序算法解析
数据结构·算法·排序算法
Zzzzmo_1 小时前
【Java】排序算法(思路及图解)
算法·排序算法
人得思变~谁会嫌自己帅呢?1 小时前
希尔排序算法
数据结构·算法·排序算法