leetcode 383. 赎金信 python

给你两个字符串:ransomNotemagazine ,判断 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

  • ransomNotemagazine 由小写英文字母组成

    python 复制代码
    class Solution:
        def canConstruct(self, ransomNote: str, magazine: str) -> bool:
            new_ransomNote = ''.join(sorted(ransomNote))
            new_magazine = ''.join(sorted(magazine))
            length1 = len(new_ransomNote)//先排序
            length2 = len(new_magazine)
            i,k = 0,0
            if(length2<length1)://magazine长度小于ransomNote返回失败
                return False
            else:
                while(i<length1 and k<length2)://二者数组下标均不可越界
                    if(new_magazine[k]>new_ransomNote[i]):
                        return False
                    elif(new_magazine[k]==new_ransomNote[i]):
                        i+=1
                        k+=1
                    elif(new_magazine[k]<new_ransomNote[i]):
                        k+=1
                if(i==length1):
                    return True
                return False
相关推荐
清水白石0084 分钟前
《Python 架构师的自动化哲学:从基础语法到企业级作业调度系统与 Airflow 止损实战》
数据库·python·自动化
kaico201815 分钟前
python操作数据库
开发语言·数据库·python
zhangzeyuaaa16 分钟前
Python变量的四种作用域
开发语言·python
Hommy8826 分钟前
【开源剪映小助手-客户端】桌面客户端
python·开源·node.js·github·剪映小助手
卷福同学35 分钟前
去掉手机APP开屏广告,李跳跳2.2下载使用
java·后端·算法
漫霂1 小时前
二叉树的翻转
java·数据结构·算法
语戚1 小时前
力扣 51. N 皇后:基础回溯、布尔数组优化、位运算全解(Java 实现)
java·算法·leetcode·力扣·剪枝·回溯·位运算
2501_921649491 小时前
2026个人量化交易免费数据API接入:从选型到实操
经验分享·python·金融·api·个人开发·量化交易
熊猫钓鱼>_>1 小时前
从零构建大模型可调用的Skill:基于Function Calling的完整指南
人工智能·算法·语言模型·架构·agent·skill·functioncall
wgzrmlrm741 小时前
如何解决ORA-28040没有匹配的验证协议_sqlnet.ora版本兼容设置
jvm·数据库·python