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

leetcode 438 找到字符串中所有的字母异位词

还是利用滑动窗口法解决,不断更新左右边界,找到符合的字符串,具体思路在代码中详细说明了

class Solution {
public:vector<int> findAnagrams(string s, string p) {vector<int> result;int cmt[26]{};//定义一个全为0的26大小的静态数组,{}表示定义全为0for(int i = 0; i < p.size(); i++){//将p中每个出现的字母次数存起来cmt[p[i] - 'a']++;}int left = 0;for(int right = 0; right < s.size(); right++){//利用滑动窗户找出所有符合条件的char temp = s[right] - 'a';cmt[temp]--;//右边界不断右移,每移动一次将cmt中出现的次数减一,s中窗口右边界加纳入cmt中进行匹配while(cmt[temp] < 0){//如果出现次数小于0的,证明该字母在窗口中出现的次数大于p中出现的次数cmt[s[left] - 'a']++;//为了找到合适的,这时候需要窗口左边界右移,故此先将之前减去的效应加回来left++;//将left对应字母之前减去的效应加回来后,便可将左边界右移}//这个while的目的是,要知道我们维持的一直是一个动态的窗口,如果我们的左边界要右移,就说明最左边的数是不会纳入最后的匹配结果的,需要舍去,但之前又在cmt中减去了左边的数,所以在左边界右移时,一定得把减去的次数加回来if(right - left + 1 == p.size()){//直到窗口中的长度等于p的长度,便是找到了,result.push_back(left);//将左边界存入result中}}return result;}
};

http://www.dtcms.com/a/416093.html

相关文章:

  • 田园综合体建设网站seo技术
  • 动态ip可以做网站吗南宁网络广播电视台
  • 东莞企业网站制作出售网站优化费用怎么做会计分录
  • 网络安全基础--第五课:跨站脚本攻击XSS
  • seo网站外链工具水果套餐网站
  • 全国各省市绿色金融指数及原始数据(1990-2022年)
  • 移动网站开发基础知识网址建设
  • 如何备份网站的网站可视区最多可以做多大
  • 网站漏洞扫描服务设计素材库
  • AI伦理规范如何影响AI的商业模式?
  • 百度字体如何转换wordpressseo 推广怎么做
  • 鑫三科技网站设计wordpress在线阅读pdf
  • 重庆北京网站建设版面设计软件
  • 企业做网站应该注意的问题广东建设厅的工程造价网站
  • Windows配置JDK8(附各版本JDK下载链接)
  • 办公网新闻上传网站开发wordpress创意博客
  • 网站建设学习视频wordpress 网页飘窗
  • AI觉醒:小白的大模型冒险记 第9章:GPT大师的工坊 - 语言模型的训练秘密
  • 优酷网站模板下载加强机关网站建设
  • 链家网信息爬虫实践:从网页抓取到数据存储
  • 网站开发销售话术网站模板html5
  • 网站制作哪些公司好全国企业信用信息公示系统查询入口
  • 网站空间什么意思企业网站建设需要做些什么
  • 深度学习-图像分类
  • 深圳宝安美容医院网站建设做网站 贴吧
  • 手机网站 后台wordpress教程网视频
  • 大型门户网站建设特点厦门企业网站制作
  • 网站的js效果代码那些网站做的非常好看的
  • 书籍网站建设规划书怎么提高网站收录
  • 【OpenGL】简单的渲染架构设计与封装