欢乐力扣:赎金信

文章目录


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 
相关推荐
少年芒2 分钟前
Leetcode 490 迷宫
android·算法·leetcode
BingLin-Liu7 分钟前
蓝桥杯备考:搜索算法之枚举子集
算法·蓝桥杯·深度优先
码农诗人10 分钟前
调用openssl实现加解密算法
算法·openssl·ecdh算法
IT猿手37 分钟前
2025最新智能优化算法:鲸鱼迁徙算法(Whale Migration Algorithm,WMA)求解23个经典函数测试集,MATLAB
android·数据库·人工智能·算法·机器学习·matlab·无人机
别NULL1 小时前
机试题——编辑器
c++·算法
鸭鸭鸭进京赶烤1 小时前
数学建模:解锁智能计算的密码!
人工智能·计算机网络·算法·数学建模·信息可视化·机器人·信息与通信
三天不学习1 小时前
.Net面试宝典【刷题系列】
面试·职场和发展·.net
01_1 小时前
力扣hot100——反转,环形链表 + 快慢指针总结
算法·leetcode·链表·快慢指针
和光同尘@1 小时前
56. 合并区间 (LeetCode 热题 100)
c语言·开发语言·数据结构·c++·算法·leetcode·职场和发展
夏末秋也凉2 小时前
力扣-回溯-131 分割回文串
算法·leetcode