赎金信python(leetcode383)
2021/12/15 12:16:39
本文主要是介绍赎金信python(leetcode383),对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
#383. 赎金信
与242. 有效的字母异位词 题目类似
给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。如果可以,返回 true ;否则返回 false 。
其他条件:
magazine
中的每个字符只能在 ransomNote
中使用一次
ransomNote
和 magazine
由小写英文字母组成
解题:
全是小写,可以由数组存储magazine各字符出现的次数,再判断ransomNote中各字符出现的次数
magazine各字符出现的次数必须大于等于ransomNote各字符出现的次数
class Solution(object): def isAnagram(self, s, t): """ :type s: str :type t: str :rtype: bool """ # 数组即是一个简单的哈希表,题目中只有小写字母,可以定义数组record记录字母出现的次数 # 哈希表的大小为26,因为字符a到字符z的ASCII也是26个连续的数值 # 检测方式: # 对于字符串s,对应字母出现 +1,对于t,对应字母出现 -1;最终数组record所有元素为0则返回true record = [0] * 26 for i in range(len(s)): #并不需要记住字符a的ASCII,只要求出一个相对数值就可以了,ord返回对应的 ASCII 数值,或者 Unicode 数值 record[ord(s[i]) - ord('a')] += 1 for i in range(len(t)): record[ord(t[i]) - ord('a')] -= 1 for i in range(len(record)): # 虽然也存在遍历,但是record的长度是26,而不是n if record[i] != 0: return False return True
这篇关于赎金信python(leetcode383)的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-24Python编程基础详解
- 2024-11-21Python编程基础教程
- 2024-11-20Python编程基础与实践
- 2024-11-20Python编程基础与高级应用
- 2024-11-19Python 基础编程教程
- 2024-11-19Python基础入门教程
- 2024-11-17在FastAPI项目中添加一个生产级别的数据库——本地环境搭建指南
- 2024-11-16`PyMuPDF4LLM`:提取PDF数据的神器
- 2024-11-16四种数据科学Web界面框架快速对比:Rio、Reflex、Streamlit和Plotly Dash
- 2024-11-14获取参数学习:Python编程入门教程