异位词(LeetCode)
给定两个字符串s和t,编写一个函数来判断t是否是s的字母异位词,你可以假设字符串只包含小写字母
解法一 异位词的中每个字母个个数相等字母类型相等
class Solution:def isAnagram(self, s, t):from collections import defaultdicttemp = defaultdict(int) # 在key 不存在的情况下可以自加一for i in s:temp[i]+=1for j in t:if temp[j] != t.count(j):return Falseelse:return True
解法二 通过字母的ascII 值来判断
class Solution:def isAnagram(self, s, t):list1,list2 = [0]*26,[0]*26 # 占坑法for i in s:list1[ord(i)-ord("a")] +=1 # 给对应坑位上的字母个数加一for j in t:list2[ord(j)-ord("a")] +=1return list1 ==list2 # 如果是通过异位来的那么对应坑位上的数字是相等的
解法三 利用结合 去分别计算 两个字符串的个个字符的个数
class Solution:def isAnagram(self, s, t):if len(s) != len(t):return Falsetemp = set(s)for i in temp:if s.count(i) != t.count(i): # 如果不相等就不是异位词return Falseelse:return True
解法四 如果是异位词,那么排序后的字符串应给是相等的
class Solution:def isAnagram(self, s, t):return sorted(s) == sorted(t)
也可这么写,利用collections 中的计数器
class Solution:def isAnagram(self, s, t):from collections import Counterreturn Counter(s) == Counter(t) # Counter 后会形成一个字典
异位词(LeetCode)相关推荐
- LeetCode简单题之有效的字母异位词
题目 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的字母异位词. 注意:若 s 和 t 中每个字符出现的次数都相同,则称 s 和 t 互为字母异位词. 示例 1: 输入: s = ...
- LeetCode 49字母异位词分组50pow(x,n)51八皇后
原创公众号:bigsai 如果不错记得点赞收藏! 关注回复 bigsai 领取Java进阶pdf资源,回复进群加入力扣打卡群. 上周打卡内容:43字符串相乘&44通配符匹配 45跳跃游戏&am ...
- LeetCode 2186. 使两字符串互为字母异位词的最少步骤数
文章目录 1. 题目 2. 解题 1. 题目 给你两个字符串 s 和 t .在一步操作中,你可以给 s 或者 t 追加 任一字符 . 返回使 s 和 t 互为 字母异位词 所需的最少步骤数. 字母异位 ...
- LeetCode 438. 找到字符串中所有字母异位词(滑动窗口)
1. 题目 给定一个字符串 s 和一个非空字符串 p,找到 s 中所有是 p 的字母异位词的子串,返回这些子串的起始索引. 字符串只包含小写英文字母,并且字符串 s 和 p 的长度都不超过 20100 ...
- LeetCode 1347. 制造字母异位词的最小步骤数
1. 题目 给你两个长度相等的字符串 s 和 t.每一个步骤中,你可以选择将 t 中的 任一字符 替换为 另一个字符. 返回使 t 成为 s 的字母异位词的最小步骤数. 字母异位词 指字母相同,但排列 ...
- LeetCode 49. 字母异位词分组(哈希)
1. 题目 给定一个字符串数组,将字母异位词组合在一起.字母异位词指字母相同,但排列不同的字符串. 示例:输入: ["eat", "tea", "ta ...
- 【LeetCode】【HOT】438. 找到字符串中所有字母异位词(滑动窗口)
[LeetCode][HOT]438. 找到字符串中所有字母异位词 文章目录 [LeetCode][HOT]438. 找到字符串中所有字母异位词 package hot;import java.uti ...
- 【LeetCode】【HOT】49. 字母异位词分组(递归)
[LeetCode][HOT]49. 字母异位词分组 文章目录 [LeetCode][HOT]49. 字母异位词分组 package hot;import java.util.ArrayList; i ...
- LeetCode 49 字母异位词分组
力扣 思路:哈希表: 排序:对两个字符串分别进行排序之后得到的字符串是相同的 将排序之后的字符串作为哈希表的键 (参考LeetCode官方题解) 定义哈希表 unordered_map< ...
最新文章
- 我们真的需要深度图神经网络吗?
- python set过滤
- 蓝桥杯 历届试题 九宫重排
- leetcode-654-最大二叉树
- [蓝桥杯][2017年第八届真题]正则问题(DFS)
- 7-1 矩阵链相乘问题 (20 分)(思路+详解+题目解析) 动态规划做法
- 网易严选Java开发三面面经:mysql索引面试题
- scrapy爬取天气存MySQL_Scrapy实战篇(五)之爬取历史天气数据
- 泛微协同办公e-cology9.0的Ecode二次开发实例说明
- 【校招VIP】产品项目分析之竞品分析
- 闲鱼x-sign, x-mini-wua算法签名接口调用
- MTK山寨机个性化DIY移植MRP初步探讨
- Excel如何快速验证银行卡号和姓名是否一致?
- 【es】es界面化管理工具cerebro的安装和使用
- Linux系统中的权限详解
- [Thoughts]敏捷方法大全
- 20150128-堆雪人
- 衬线字体和无衬线字体区别_字体,字体和字体系列有什么区别?
- 零基础自学SQL课程 | 子查询
- idea编辑jsp页面部分页面变黄绿色并且不提示,解决很简单,设置里边找language injection就ok...