异位词(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< ...
最新文章
- Exadata上的分页查询性能测试
- 第2课:关闭被黑客扫描的端口
- 大学生必须要知道的毕业设计基本流程
- poj3264RMQ
- 《学习OpenCV3》第10章 滤波与卷积
- ORM框架之Mybatis(一)基于mapper配置增删改查
- 设计模式综和实战项目x-gen系列一
- 【Linux】【Services】【Package】编译安装
- 使用javadoc命令制作帮助文档(API)
- python pyfile py_Python中py文件引用另一个py文件变量的方法
- echarts无数据时显示暂无数据或者用图片代替
- 状态压缩dp学习小记part1
- 爱的能力(徐博客写的-收藏下)
- mysql win10 优化设置_Win10电脑优化必做的几个优化技巧提升速度!
- 计算机专业综合改革举措,数学与应用数学专业综合改革的举措数学论文(9页)-原创力文档...
- 计算机视觉方向简介 | 深度学习3D重建
- Rabin-Karp算法 (拉宾-卡普)
- 事理图谱:事件演化的规律和模式
- win10怎么将txt转换为html,win10怎么把txt格式改成bat_win10系统txt文件改成bat操作方法-win7之家...
- HDMI转MIPI DSI芯片方案TC358870XBG