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

滁州网站建设梦天堂怎么创建文档

滁州网站建设梦天堂,怎么创建文档,效果图制作软件免费,怎样用网站做单笔外贸567. 字符串的排列 长度不变 给你两个字符串 s1 和 s2 ,写一个函数来判断 s2 是否包含 s1 ****的排列。如果是,返回 true ;否则,返回 false 。 换句话说,s1 的排列之一是 s2 的 子串 思路:s1长度固定的窗…

567. 字符串的排列 长度不变

给你两个字符串 s1s2 ,写一个函数来判断 s2 是否包含 s1 ****的排列。如果是,返回 true ;否则,返回 false

换句话说,s1 的排列之一是 s2子串

思路:s1长度固定的窗口里的hash表和s2 要一致

  • 用一个s1Map 保存 s1出现的字符和个数。
  • 遍历 s2,维护窗口里的map
/*** @param {string} s1* @param {string} s2* @return {boolean}*/
var checkInclusion = function (s1, s2) {let map = new Map();for (let i = 0; i < s1.length; i++) {map.set(s1[i], map.get(s1[i]) + 1 || 1);}let left = 0;let s1Map = new Map();for (let i = 0; i < s2.length; i++) {// 扩大窗口,维护窗口里字符出现的个数s1Map.set(s2[i], s1Map.get(s2[i]) + 1 || 1);// 如果窗口满足条件if (i - left + 1 === s1.length) {// 满足要求的 ,更新答案if (isSameMap(s1Map, map)) {return true;}// 缩小窗口,维护窗口减少的字符串s1Map.set(s2[left], s1Map.get(s2[left]) - 1);if (s1Map.get(s2[left]) === 0) {s1Map.delete(s2[left]);}left++;}}return false;
};function isSameMap(map1, map2) {if (map1.size !== map2.size) {return false;}for (let key of map1.keys()) {if (map1.get(key) !== map2.get(key)) {return false;}}return true;
}

438 找到字符串中所有字母异位词 长度固定。

上一道题是是否有,这道题是如果有,找出所有答案。

/*** @param {string} s* @param {string} p* @return {number[]}*/
var findAnagrams = function(s, p) {let map = new Map();for(let i = 0; i < p.length; i++){map.set(p[i], map.get(p[i]) + 1 || 1);}let left = 0;let sMap = new Map();let res = [];for(let i = 0; i < s.length; i++){// 扩大窗口,维护窗口里字符出现的个数sMap.set(s[i], sMap.get(s[i]) + 1 || 1);// 如果到达了限定长度if(i-left+1 === p.length){// 判断是否能够更新答案if(isSameMap(sMap, map)){res.push(left);}// 缩小窗口。sMap.set(s[left], sMap.get(s[left]) - 1);if(sMap.get(s[left]) === 0){sMap.delete(s[left]);}left++}}return res;
};// 比较两个map是否相同
function isSameMap(map1, map2) {if (map1.size !== map2.size) {return false;}for (let key of map1.keys()) {if (map1.get(key) !== map2.get(key)) {return false;}}return true;
}

比较两个map是否相同。

可以使用map,也可以使用一个26位数组(都是小写或者都是大写),然后再比较两个数组是否相同。

方法二,使用频数数组。

var findAnagrams = function (s, p) {let pArr = new Array(26).fill(0);for (let i = 0; i < p.length; i++) {pArr[p.charCodeAt(i) - "a".charCodeAt(0)]++;}let sArr = new Array(26).fill(0);let res = [];let left = 0;for (let i = 0; i < s.length; i++) {sArr[s[i].charCodeAt(0) - "a".charCodeAt(0)]++;if (i - left + 1 === p.length) {if (sArr.toString() === pArr.toString()) {res.push(left);}sArr[s[left].charCodeAt(0) - "a".charCodeAt(0)]--;left++;}}return res;
};
http://www.dtcms.com/wzjs/580474.html

相关文章:

  • 网站开发开源框架如何建设一个彩票网站
  • 天津智能网站建设制作贵阳工程建设招聘信息网站
  • 徽州网站建设杭州优化公司哪家好
  • 网站服务器无响应是怎么回事wordpress官方程序下载
  • 智慧团建管理员登录入口seo到底是什么
  • 大渡口网站建设哪家好如何做网站页面赚钱
  • 免费一键搭建网站广州品牌策划公司排行
  • 北京建设主管部门网站页面设计收获心得
  • 移动端网站开发尺寸网页配色网站
  • 网站跳出率 查询如何快速的制作h5页面
  • 怎么建立一个博客网站吗万网定制网站怎么样
  • 沈阳网站seo优化哪家好公司注册代理免费
  • 网站建设有哪些问题wordpress备份
  • 怎么创建卡密网站南京建设局的网站首页
  • 三亚门户网站快速网站收录
  • 上海做网站备案要多久医药销售网站开发背景
  • 郑州网站建设商城定制阳江网络问政
  • 百度做网站电话多少钱福建设计招标网站
  • 闵行做网站建设百度小说风云排行榜
  • 大作业做网站网站制作多少钱公司
  • 英文网站标题字体中国建设银行网站宁波网点
  • 普通网站建设费用百度收录网站提交入口
  • 济南网站建设咨询小七企业网站建设多少家
  • 网站建设及政务工作自查wordpress 没有添加主题
  • 公司网站建设实施方案优化wordpress访问速度
  • 客户管理系统内容seo外包服务费用
  • 网站建设先进部门评选标准做特色创意菜品的网站
  • 高端品牌网站建设内容用vs session做网站
  • 用AIDE怎么建设网站简述做个人网页的思路
  • 教育培训机构网站建设扬州市建设局招标网站