当前位置: 首页 > news >正文

【力扣100】8.找到字符串中所有字母异位词

添加链接描述

class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:sildingstr=''result=[]p=''.join(sorted(p))for i in range(len(s)):if len(sildingstr)<len(p):sildingstr=sildingstr+s[i]# print(sildingstr)if len(sildingstr)==len(p):sort_sildingstr=''.join(sorted(sildingstr))if sort_sildingstr==p:result.append(i-len(p)+1)sildingstr=sildingstr[1:]else:sildingstr=sildingstr[1:]return result

思路:

  1. 纯正的滑动窗口
  2. 笑死我了,差点超时,怎么可以这么慢!!!

优化:

  1. 使用哈希表作为判断工具,这样就可以不对字符串进行排序
class Solution:def findAnagrams(self, s: str, p: str) -> List[int]:n, m, res = len(s), len(p), []if n < m: return resp_cnt = [0] * 26s_cnt = [0] * 26for i in range(m):p_cnt[ord(p[i]) - ord('a')] += 1s_cnt[ord(s[i]) - ord('a')] += 1if s_cnt == p_cnt:res.append(0)for i in range(m, n):s_cnt[ord(s[i - m]) - ord('a')] -= 1s_cnt[ord(s[i]) - ord('a')] += 1if s_cnt == p_cnt:res.append(i - m + 1)return res
http://www.lryc.cn/news/256052.html

相关文章:

  • 圆通速递查询,圆通速递单号查询,用表格导出查询好的物流信息
  • FLStudio中文2024中文最新汉化安装包下载
  • AI:大语言模型训练方法 - 机器学习
  • Linux(17):认识与分析登录档
  • STM32上模拟CH340芯片的功能 (一)
  • 图论——最小生成树
  • C++基础 -42- STL库之list链表
  • Backend - Python 序列化
  • 初级数据结构(一)——顺序表
  • 实现:切换页面切换标题,扩展 vue-router 的类型
  • 已通过考试和认证注册以及后续计划表
  • 开源计算机视觉库OpenCV详解
  • 使用pytorch查看中间层特征矩阵以及卷积核参数
  • HarmonyOS4.0从零开始的开发教程09页签切换
  • 大电流H桥电机驱动电路的设计与解析(包括自举电路的讲解,以IR2104+LR7843为例)
  • windows11 windows 11 (win11 win 11) 怎么安装 Python3 ? numpy? sounddevice? 声音信号处理库?
  • git如何配置多个远程仓库,并且进行切换
  • 计算机存储单位 + 程序编译过程
  • vue路由导航守卫(全局守卫、路由独享守卫、组件内守卫)
  • 单片机双机通信控制跑马灯
  • 微信小程序:button微信开放能力打开客服会话分享到聊天框
  • 【数据结构】——队列实现二叉树的功能
  • 【已解决】Win7虚拟机安装VMtools报错
  • 华为OD机试真题-小明找位置-2023年OD统一考试(C卷)
  • 2023.2版idea安装教程,现在jdk8已经过去式了,不同idea支持的jdk不同。升级jdk后idea也要随之升级
  • CSS3技巧36:让内容垂直居中的三种方式
  • 空间运算设备-Apple Vision Pro
  • cocos creator “TypeError: Cannot set property ‘string‘ of null
  • 简谈MySQL的binlog模式
  • Linux 环境部署RabbitMQ