给定两个字符串s和p,在s中查找p变位词(由颠倒字母顺序而构成的字符串)的所有起始索引,返回一个list。

26个小写字母,设计两个长度为26的list,一个“pchar2num”用来存储p中的字母的ASCII码(a的设为0),另一个“schar2num”用来存储s中的字母的ASCII码。
对s中的字母进行遍历,当遍历过的长度等于p的长度时,判断当前的schar2num和pchar2num是否相等,若相等则返回下标。不管是否相等,都需要将schar2num中当前第一个出现字母的ASCII码的位置处的值减去1。

class Solution:def findAnagrams(self, s, p):""":type s: str:type p: str:rtype: List[int]"""schar2num = [0]*26pchar2num = [0]*26res = []for i in range(len(p)):pchar2num[ord(p[i])-ord('a')] += 1for i in range(len(s)):schar2num[ord(s[i])-ord('a')] += 1if i >= len(p)-1:if schar2num == pchar2num:res.append(i-len(p)+1)schar2num[ord(s[i-len(p)+1])-ord('a')] -= 1return res
  • 相关知识点

o. 哈希表:是一种根据关键码去寻找值的数据映射结构,该结构通过把关键码映射的位置去寻找存放值的地方,其实就是Python里的dict(key-value)。这道题是将下标index作为key,对应下标的值作为value,其实跟dict的意思一样。

o. ASCII表:若直接根据ASCII表,可以设计两个长度为123的list,这样就省得要减去ord(‘a’)了。

22/100. Find All Anagrams in a String相关推荐

  1. leetcode 438:Find All Anagrams in a String 找变位子串

    Find All Anagrams in a String 找变位子串: 本题难度为easy  当看到题目的第一眼 有些怀疑  怎么能等级那么简单  通过网上找到思路后发现 确实不难  现整理总结思路 ...

  2. 查找所有的(字符相同但顺序不同) Find All Anagrams in a String

    2019独角兽企业重金招聘Python工程师标准>>> 问题: Given a string s and a non-empty string p, find all the sta ...

  3. 奥鹏教育多媒体计算机技术19秋在线作业2,[东北师范大学]《多媒体计算机技术》19秋在线作业22(100分)...

    [奥鹏][东北师范大学]多媒体计算机技术19秋在线作业2 试卷总分:100    得分:100 第1题,多媒体信息不包括 () A.音频,视频 B.动画,图像 C.声卡,光盘 D.文字,图像 正确答案 ...

  4. 438. Find All Anagrams in a String

    https://www.cnblogs.com/grandyang/p/6014408.html 用两个hash表来存储个数 class Solution { public:vector<int ...

  5. LeetCode Find All Anagrams in a String

    题意:给出两个字符串s,t,找出s中所有的p的打散后的字符串在s中的下标 思路:使用类似队列的思路来做,在针对s元素入队列时,判断元素是否在p中出现.当队列元素个数刚好为p的长度,并且为p的打散字符串 ...

  6. leetcode 438. Find All Anagrams in a String | 438. 找到字符串中所有字母异位词(Java)

    题目 https://leetcode.com/problems/find-all-anagrams-in-a-string/ 题解 方法1:尝试构造一种"与顺序无关的哈希" 思考 ...

  7. leetcode438. Find All Anagrams in a String

    题目:题目链接 思路:滑动窗口嘛.为啥?Related topic里面有. 简单来说就是利用一个大小为p.size()的窗口,从s的第0个位置开始比对,然后比完了就右移一个位置. 比对的话直接用map ...

  8. 树莓派22/100 - Pico入侵检测报警器

    入侵检测器 这一节需要一个HC-SR501的小元件,大概3~5元钱,某多非常给力,5元钱的东西也包邮. 中文说明书称之为人体感应模块,产品介绍是这样说的: HC-SR501是基于红外线技术的自动控制模 ...

  9. leetcode 438. Find All Anagrams in a String 滑动窗口法

    题目链接 解析 主要使用滑动窗口法解题,需要好好体会的是中间的两个判断couter的用法,这里很巧妙. 如果想了解更多的滑动窗口法内容,看这里: 滑动窗口法详解 代码 from collections ...

最新文章

  1. studio2008 无法显示该网页
  2. win 64位系统安装带有c编写的python模块出现ValueError: [u'path']解决
  3. R语言实现sigmoid激活函数并可视化
  4. 马斯克的90后合伙人离职Neuralink!5岁学编程,曾创立2家公司
  5. 思科交换机配置试题_(思科配置试题可以略过)
  6. Hadoop日记Day7---HDFS的WED端口
  7. java ef 引用问题_java调用shell(ps -ef | grep )问题
  8. mysql 高性能压力测试(总结了好久)
  9. 2015蓝桥杯省赛---java---C---3(无穷分数)
  10. JS~~~ 前端开发一些常用技巧 模块化结构 命名空间处理 奇技淫巧!!!!!!...
  11. java ee实验新闻_JAVAEE第四次作业-JSP显示新闻
  12. Serverless 场景排查问题利器:函数实例命令行操作
  13. html图片等比例拉伸,CSS控制图片等比例缩放
  14. 安卓学习征文 -- 自己定义标题栏
  15. VTD信号灯TrafficLight数据解析提取
  16. Web全栈~02.表单样式设计
  17. 每日一题 导数的应用
  18. john5(john5和曼森的关系)
  19. 小鸟云服务器如何进行远程桌面连接?
  20. Unity-模型导入-材质

热门文章

  1. php str_replace多个参数,php str_replace()函数的用法,有那些参数?
  2. systemd管理mysql多实例_使用 systemd 配置多个 MySQL 8.0 实例
  3. 一体化系统中心服务器,数据中心一体化:监测与控制
  4. matlab中antoine方程应用,Antoine方程 安托因方程
  5. arthas 排查内存溢出_Java程序线上故障排查
  6. python 操作oracle 执行脚本_python、abaqus执行脚本路径
  7. 传奇手游服务器搭建_热血传奇3月开服计划
  8. 为什么EClipse不显示错误
  9. 计算机考研:计算机组成原理考点分析
  10. ajax返回类型探讨