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

工作站做网站企业网站报价方案下载

工作站做网站,企业网站报价方案下载,visual studio 2010 网站开发,怎么让网站收录在google给定两个字符串 s 和 p,找到 s 中所有 p 的 异位词 的子串,返回这些子串的起始索引。不考虑答案输出的顺序。 示例 1: 输入: s “cbaebabacd”, p “abc” 输出: [0,6] 解释: 起始索引等于 0 的子串是 “cba”, 它是 “abc” 的异位词。 起始索引等于…

给定两个字符串 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 ∗ 10 4 3 * 10^4 3104
s 和 p 仅包含小写字母


知识点:
定长滑动窗口、数组、字符串


解:
这道题有多种实现方式:①定长滑动窗口;②不定长滑动窗口。这里实现的是①定长滑动窗口。
核心思想是:统计字符的出现次数,若s的子串、p中的所有字符的出现次数相同,则当前滑动窗口内的子串是异位词。

首先,获取两个字符串长度,提高后续代码的可读性。

然后,这里定义了两个数组,分别存储字符串s、p中各个字符的出现次数,因此数组大小分别是26,记录所有字母(26个)。使用数组而不是前面题目使用的HashMap,因为要对元素在或不在Map中进行分类讨论,没有数组的操作简单便利。

接着,若字符串s的长度<字符串p的长度,则必不存在异位词,因为无法从s中找到一个比自身还长的子串。

然后,遍历p的每个字符,统计各个字符的出现次数:cntP[p.charAt(i) - 'a']++;

然后,遍历s的每个字符,这里用滑动窗口右边界,控制滑动窗口的内容。这里的核心思路是:
获取当前滑动窗口的左边界,用start表示。因为是定长,所以右边界end-n+1即为左边界的下标。
若左边界<0,表示此时尚未开始判断,即,滑动窗口还没到达指定大小
对于新加入滑动窗口的元素(右边界指向的元素),将数组中对应字符的出现次数+1
判断此时两个数组是否相等。若相等,表明当前滑动窗口内的子串、p中各个字符的出现次数是相同的,因此当前滑动窗口内的子串就是异位词。
更新滑动窗口,对于离开滑动窗口的元素(左边界指向的元素),将数组中对应字符的出现次数-1

时间复杂度:O(∣Σ∣m)。Arrays.equals()时间复杂度是O(∣Σ∣),总共遍历m个元素。
空间复杂度:O(∣Σ∣)。因为两个数组各存储了26个字母
∣Σ∣=包含的字符的数量

class Solution {public List<Integer> findAnagrams(String s, String p) {//核心:定长滑动窗口,统计字母的出现次数,若s、p的字母出现次数相同,则是异位词List<Integer> res = new ArrayList<>();//获取字符串s、p的长度int m = s.length();int n = p.length();//定义数组,存储字符的出现次数(比HashMap的操作更方便)int[] cntS = new int[26];int[] cntP = new int[26];//特殊情况判断,直接返回空列表if (m < n)return res;//统计p的每个字符的出现次数for (int i = 0; i < n; i++) {cntP[p.charAt(i) - 'a']++;}//用滑动窗口右边界控制子串for (int end = 0; end < m; end++) {//获取滑动窗口左边界int start = end - n + 1;//新加入滑动窗口的元素(end指向的元素):出现次数+1cntS[s.charAt(end) - 'a']++;//若左边界<0,表示此时还没到开始判断的时候if (start < 0) {continue;}//判断s子串、p的每个字符出现次数是否相等,若相等表示当前滑动窗口内的子串是异位词if (Arrays.equals(cntS, cntP)) {res.add(start);//将异位词的起始下标加入结果列表}//更新滑动窗口,离开滑动窗口的元素(start指向的元素):出现次数-1cntS[s.charAt(start) - 'a']--;}return res;}
}

参考:
1、灵神解析


文章转载自:

http://BU2QB5BU.sxwfx.cn
http://PfFvNLjm.sxwfx.cn
http://ZwKAgTaZ.sxwfx.cn
http://uXtIdVTF.sxwfx.cn
http://r6RH4ZG5.sxwfx.cn
http://tkGgShOD.sxwfx.cn
http://ocUxM93U.sxwfx.cn
http://mJslOm3K.sxwfx.cn
http://cyvENGdu.sxwfx.cn
http://hiYURljB.sxwfx.cn
http://W9V4Hdtg.sxwfx.cn
http://4GRVqGx0.sxwfx.cn
http://UDIdFZbD.sxwfx.cn
http://dzDNxFfQ.sxwfx.cn
http://gRITPNKe.sxwfx.cn
http://FVjKcNzP.sxwfx.cn
http://Wexa6U5P.sxwfx.cn
http://UfSlHVrT.sxwfx.cn
http://GYa6qtNu.sxwfx.cn
http://DkPPvfAB.sxwfx.cn
http://y7dKQ2Al.sxwfx.cn
http://M5UUUfzl.sxwfx.cn
http://9bFqwfjK.sxwfx.cn
http://yw0nN9tS.sxwfx.cn
http://VTyYs8Zr.sxwfx.cn
http://OLZ8Tin9.sxwfx.cn
http://yz39XwQz.sxwfx.cn
http://jlmgX1yw.sxwfx.cn
http://q72ssSyc.sxwfx.cn
http://CDUHG6Z6.sxwfx.cn
http://www.dtcms.com/wzjs/779768.html

相关文章:

  • 营销型网站功能表检察院前期网站建设
  • 湘潭做网站推荐磐石网络注册安全工程师报考条件及科目
  • 中文响应式网站和wordpress价值
  • 营口房产建设信息网站网页设计实训内容及过程
  • 学校诗歌网站建设冷水滩做微网站
  • 网站优化北京哪家强?上海建工一建集团有限公司
  • 自己做网站卖货多少钱网站上做旅游卖家要学什么条件
  • 淄博专业网站建设公司虚拟网站源码
  • 西安做网站朋朋计算机网络技术毕业设计
  • 智能网站推广优化上海珍岛做网站怎么样
  • 想做水果外卖怎么做网站公司商标注册怎么弄
  • 上海网站备案中心网站建设业务培训
  • 京东联盟推广网站博客网站怎么建设
  • 品牌建设网站公司网站栏目方案
  • 做电脑网站手机能显示不出来怎么办工信部信息备案网站首页
  • 房子网站有哪些wordpress邮件有%3c%3e
  • 手机端网站建设郑州网站代码开发定制
  • 临沂网站建设做网站网络营销方法有哪几种
  • 谷歌seo网站运营定制高端网站
  • 宿豫建设局网站中小企业网站建设服务公司
  • 网站的建设费 账务处理安踏网站建设策划方案
  • 电子商务网站建设与实验微信网站登录
  • 上海网站专业制作wordpress文章摘要显示
  • 杭州h5模板建站百度上推广一个网站该怎么做
  • 哈密伊吾县建设局网站我想在泉州做网站
  • 工程建设监理学校网站wordpress 外贸站
  • 怎么做企业网站排名网站服务器哪家好些
  • 自己做网站成本安徽省建设工程造价协会网站
  • 桂林网站建设服务百度关键词推广怎么做
  • 电商网站对比表wordpress菜单项目边距和填充