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

做蛋糕视频的网站迅当网络深圳外贸网站建设

做蛋糕视频的网站,迅当网络深圳外贸网站建设,百度小程序api,婚纱网页制作找到字符串中所有的字母异位词 .题目链接题目详情题目解析算法原理滑动窗口流程图定义指针及变量进窗口判断出窗口更新结果 我的答案 . 题目链接 找到字符串中所有的字母异位词 题目详情 题目解析 所谓的异位词,就是一个单词中的字母,打乱顺序,重新排列得到的单词 如:abc-&g…

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

  • .
  • 题目链接
  • 题目详情
  • 题目解析
  • 算法原理
    • 滑动窗口流程图
    • 定义指针及变量
    • 进窗口
    • 判断
    • 出窗口
    • 更新结果
  • 我的答案

.

在这里插入图片描述

题目链接

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

题目详情

在这里插入图片描述

题目解析

所谓的异位词,就是一个单词中的字母,打乱顺序,重新排列得到的单词
如:abc->bca
那么题目的目的就很明显了,就是要求在s字符串中找到p的异位词(相同组成,不同排列)
我们来模拟找一下
首先,定义两个指针,维护满足异位词的左右边界
在这里插入图片描述
使right往右移动
在这里插入图片描述

如图,在left与right之间,长度刚好符合p的异位词,此时,就需要对这个字符串进行校验,很,很明显,cba就属于p的异位词,校验成功,将当前异位词的首元素下标记录一下,然后使right继续往右移,但是此时子串的长度就不满足p的异位词了,因此,需要将left也往右移动一位
在这里插入图片描述
移动完成之后,此时子串的长度又满足条件了,进行校验,并不是p的异位词,继续移动,直到遍历完整个数组
很明显,整个过程通过两个指针,同向进行遍历来解决问题,而left与right之间,往右移动的过程,与窗口类似,因此我们考虑使用滑动窗口来实现这个过程

算法原理

滑动窗口流程图

在这里插入图片描述

定义指针及变量

定义两个指针:left和right,初始值都为0
创建hash表1,用数组模拟,记录p的每个字母出现的个数
创建hash表2,用数组模拟,用来记录子串(窗口)中各个字母出现的个数
定义变量count,来记录窗口中的有效字母的个数
创建链表来存储满足条件的异位词的下标

进窗口

将right所在的字母添加到hash2中,t添加完成之后
如果hash2[s[right]-‘a’]<=hash1[s[right]-‘a’]
说明当前字母是有效字母,就将count加一

判断

判断子串长度是否大于p的异位词的长度

出窗口

当窗口内子串长度大于p的异位词的长度的时候,需要将left所在的字母从hash2中减去1,在减去之前,需要再进行一层判断,判断hash2[s[left]-‘a’]<=hash1[s[left]-‘a’],如果满足,说明减去的是有效字母,因此需要将count进行减一

更新结果

如果有效字母个数count等于p的字母个数,就说明满足p的异位词,将当前子串的下标存进链表中

我的答案

class Solution {public List<Integer> findAnagrams(String ss, String pp) {//定义返回值List<Integer> list = new ArrayList<>();//将ss和pp转换为数组,方便遍历char[]s = ss.toCharArray();char[]p = pp.toCharArray();//创建hash1,统计pint[]hash1 = new int[26];for(char tmp:p){hash1[tmp-'a']++;}//创建hash2,用于统计sint[]hash2 = new int[26];//定义变量int count = 0;//记录有效字母个数for(int left = 0,right = 0;right<s.length;right++){//进窗口hash2[s[right]-'a']++;//维护有效字母个数if(hash2[s[right]-'a']<=hash1[s[right]-'a']) count++;//判断if(right-left+1>p.length){//出窗口//维护有效字母个数if(hash2[s[left]-'a']<=hash1[s[left]-'a']) count--;hash2[s[left]-'a']--;left++;}//更新结果if(count==p.length){list.add(left);}}return list;}
}
http://www.yayakq.cn/news/744618/

相关文章:

  • 莱芜信息港官网wordpress语言切换 seo
  • wordpress图书页面flash网站做seo优化好不好
  • 文化产业协会网站源码购物网站开发需求分析
  • 云南建网站牛人网络网站
  • 网站标题上的小图标怎么做资源网站如何做
  • 网站集约建设巴中市城乡和住房建设局网站
  • 网站怎么做文本跳出来网站建设zrhskj
  • 微信放在网站根目录杭州平面设计
  • 买了域名和空间怎么做网站网站开发的职业分析
  • 广州做网站平台网站建设毕业答辩ppt怎么写
  • 网站设计模板免费下载免费网址2021年能用的
  • 怎么查网站是否被k品牌网鞋有哪些牌子
  • 构建企业网站中国电力建设集团股份有限公司网站
  • 免费网站去哪找产品画册设计怎么做
  • 傻瓜式网站开发工具施工企业安全管理制度
  • 国外的做的比较优秀的网站汝州市文明建设门户网站
  • 免备案的网站外包网站推荐
  • 网站关键词太多好不好wordpress侧边栏上拉后固定
  • 服装网站设计方案家庭电影网站建设
  • 桂林网站建设电子商务网站建设学什么软件
  • 设计素材网站能挣钱吗前端和网站部署做网站的
  • 网站扫码充值怎么做的凤泉网站建设
  • 校园网站怎么建设含山建设局网站
  • 网站基础三要素营销方案英文
  • 青岛网站优化快速排名哪个域名注册网站好
  • aspx网站服务器失去响应2022年传销最新消息
  • 学校网站建设重要性wordpress上传图片错误媒体库错误
  • 甘肃省建设工程安质局网站南京时事重大新闻
  • 外国做营销方案的网站外贸公司 网站
  • 企慕网站建设网络推广收费的网站怎么做的