LeetCode:383(Python)—— 赎金信(简单)
概述:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。
·
赎金信
概述:给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。magazine 中的每个字符只能在 ransomNote 中使用一次。
输入:ransomNote = "a", magazine = "b"
输出:false
输入:ransomNote = "aa", magazine = "ab"
输出:false
输入:ransomNote = "aa", magazine = "aab"
输出:true
方法一:Counter() 方法
思路:用 Counter() 方法统计出每个字符串出现次数,然后判断相减是否为空即可。
# Counter() 方法
# 用 Counter() 方法统计出每个字符串出现次数,然后判断相减是否为空即可。
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
if len(ransomNote) > len(magazine):
return False
return not collections.Counter(ransomNote) - collections.Counter(magazine)
方法二:暴力循环
思路:题目要求是 magazine 包含了 ransomNote,那么转为列表依次判断并移除即可。
# 暴力循环
# 题目要求是 magazine 包含了 ransomNote,那么转为列表依次判断并移除即可。
class Solution:
def canConstruct(self, ransomNote: str, magazine: str) -> bool:
list_1 = list(ransomNote)
list_2 = list(magazine)
for i in range(len(list_2)):
if list_2[i] in list_1:
list_1.remove(list_2[i])
return len(list_1) == 0
总结
这是新手题吗,可能我是断手,看的都吃力

GitCode 天启AI是一款由 GitCode 团队打造的智能助手,基于先进的LLM(大语言模型)与多智能体 Agent 技术构建,致力于为用户提供高效、智能、多模态的创作与开发支持。它不仅支持自然语言对话,还具备处理文件、生成 PPT、撰写分析报告、开发 Web 应用等多项能力,真正做到“一句话,让 Al帮你完成复杂任务”。
更多推荐
所有评论(0)