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

山西建设行政主管部门官方网站个人住房公积金贷款

山西建设行政主管部门官方网站,个人住房公积金贷款,网页制作的公司企业,体育台球直播在线观看题目: 给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。 示例 1: 输入: s "cbaebabac…

题目:

给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。

异位词 指由相同字母重排列形成的字符串(包括相同的字符串)。

示例 1:

输入: s = "cbaebabacd", p = "abc"
输出: [0,6]
解释:
起始索引等于 0 的子串是 "cba", 它是 "abc" 的异位词。
起始索引等于 6 的子串是 "bac", 它是 "abc" 的异位词。

 示例 2:

输入: s = "abab", p = "ab"
输出: [0,1,2]
解释:
起始索引等于 0 的子串是 "ab", 它是 "ab" 的异位词。
起始索引等于 1 的子串是 "ba", 它是 "ab" 的异位词。
起始索引等于 2 的子串是 "ab", 它是 "ab" 的异位词。

提示:

  • 1 <= s.length, p.length <= 3 * 104
  • s 和 p 仅包含小写字母

算法原理:

字符串 p 的异位词的长度⼀定与字符串 p 的长度度相同,且异位词每种字母的个数和字符串每种字母的个数相同,所以我们可以利用滑动窗口(同向双指针)构造一个长度和字符串p相同的滑动窗口,并在滑动中维护窗⼝中每种字母的数量

 两个数组来模拟哈希表,hash1数组统计字符串p所有字母个数, hash2数组统计窗口中所有字母的个数

1 count变量来统计窗口中有效字母的个数,所谓有效字母就是某个字母加入窗口后,它的个数<=字符串p中同字母的个数,那么count++

2 left=0(左边界) right=0(指向待加入窗口中的元素)

3 进窗口+维护count:hash2数组为right指向的字母计算上一次个数

                                    如果该字母加入窗口后,此字母的个数<=hash1数组中同字母的个数

                                    则count++
4 判断是否出窗口+维护count:

                                    如果当前窗口的长度超过字符串p的长度,则要出窗口,只需要出一个元素

                                    在出窗口之前,要判断出窗口的字母是否为有效字母,若为有效字母

                                    则count--

                                    出窗口:出窗口的此字母在hash2数组中的个数-1,同时left++

5 更新结果:若是有效字母的个数==字符串p的长度,则该滑动窗口构成的是异位词

代码实现:

class Solution
{
public:vector<int> findAnagrams(string s, string p) {int hash1[26] = {0};//统计字符串p中每个字符出现的个数for(auto e:p){hash1[e-'a']++;}int hash2[26] = {0};//统计窗口里每个字符出现的个数int left = 0;int right = 0;int n = s.size();int m = p.size();int count = 0;vector<int> ret;while(right<n){hash2[s[right]-'a']++;//进窗口+维护countif(hash2[s[right]-'a']<=hash1[s[right]-'a']){count++;}if(right-left+1>m)//判断{if(hash2[s[left]-'a']--<=hash1[s[left]-'a'])//出窗口+维护count{count--;}left++;}if(count==m)//更新结果{ret.push_back(left);}right++;}return ret;}
};

http://www.yayakq.cn/news/522126/

相关文章:

  • 电子商务企业网站建设前期规划方案域名停域app免费下载
  • asp.net制作的网站开发怎样用自己的电脑做网站
  • 景区智慧旅游网站建设自媒体营销推广
  • 良精企业网站管理系统搜索关键词推荐
  • 最大的做网站公司内蒙古众信国际旅行社电话
  • 綦江建站哪家正规网站开发 php python
  • 网站多少个关键词斗蟋蟀网站建设
  • 室内设计软件大全网站电商seo优化是什么意思
  • 徐州网站无障碍建设上海室内设计公司
  • 找人做网站做小程序动漫制作技术专业
  • 宜春网站建设推广服务器租用
  • 如何免费建网站赚钱重庆建站模板
  • vs 手机网站开发网站开发 建设叫什么
  • 西安企业网站建设哪家好wordpress 设计套程序
  • 温州免费个人网站制作公司首钢建设网站
  • 网站查询关键词排名软件佛山推广优化公司
  • 做电影售票网站的难点百度纯净版首页入口
  • 视频聚合网站怎么做不侵权网站建设验收确认书免费下载
  • [ 1500元做网站_验收满意再付款! wordpress 更改数据表
  • 白银市建设局网站王浩郯城建设局网站
  • 国外优秀vi设计网站泰顺网站建设
  • vip网站解析建设wordpress composer
  • 音乐网站开发文档广州网站推广建设
  • 精品网站开发公司做网站销售话术
  • 广州做网站(信科网络)网页浏览器软件
  • 网站维护案企业名录2021版
  • 怎么建设自己导购网站返利网站程序
  • 武义县建设局网站首页最新国际新闻10条
  • 盘锦网站建设兼职专业简历制作管理平台
  • 15年做那个网站能致富中国建筑app免费下载