栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

算法

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

算法

文章目录
  • 有效的字母异位词
    • 1.解法
    • 2.总结
      • python
      • 算法
    • 3.相关题目推荐

有效的字母异位词

leetcode链接

1.解法
  1. 定义一个长度为26的数组,因为英文字母有26个,初始化为全0
  2. 遍历一下s,在每个字母对应的位置让数组的值+1
  3. 遍历一下t,在每个字母对应的位置让数组的值-1
  4. 最后遍历数组,如果数组为全0,则说明s和t只是顺序不同的相同字符串(字母异位词)

代码如下:

def isAnagram(self, s: str, t: str) -> bool:
	hashtable = [0] * 26
	for i in s:
	    index = ord(i) - ord('a')
	    hashtable[index] += 1
	
	for i in t:
	    index = ord(i) - ord('a')
	    hashtable[index] -= 1
	
	for i in hashtable:
	    if i != 0:
	        return False
	
	return True
2.总结 python
  1. sorted函数:可以排序任何可迭代的容器,默认升序

  2. 初始化一个长度为len的数组的方式:

     array = [0] * len
    
  3. ord(ch):返回一个字符的ASCII码或者 Unicode 数值

  4. collections.defaultdict([default_factory[, …]]):当键值不存在时,可以直接调用这个方法,对键值进行操作,而不需要赋初值;如果单纯使用dict的话,需要先遍历一遍赋个初值,然后再进行操作。

算法
  1. 首先定义一个合适的哈希表:
    (1)长度合适
    (2)键值对合适

  2. 哈希表的方法一般是:
    (1)索引:用来对应一些已知的信息
    (2)值:用来记录个数或者做标记

3.相关题目推荐

383.赎金信
49.字母异位词分组
438. 找到字符串中所有字母异位词

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/461595.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号