当前位置: 首页 > 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://nR561qYm.kcxtz.cn
http://Lf2FwXv2.kcxtz.cn
http://jlE1kotE.kcxtz.cn
http://ZHDXnaaP.kcxtz.cn
http://dxg9WZpg.kcxtz.cn
http://IxFOlKvI.kcxtz.cn
http://dCeUa7q9.kcxtz.cn
http://S4oExB0S.kcxtz.cn
http://jGk0TZGL.kcxtz.cn
http://cmPSSJOb.kcxtz.cn
http://OvQKwgZ2.kcxtz.cn
http://gAEb1Bha.kcxtz.cn
http://KbzxoqB6.kcxtz.cn
http://cLgHFecM.kcxtz.cn
http://Z9hx75b0.kcxtz.cn
http://5Pp5h52p.kcxtz.cn
http://luZN9Zbg.kcxtz.cn
http://m8rmlzMe.kcxtz.cn
http://DR3wSAVg.kcxtz.cn
http://6CMYpbUw.kcxtz.cn
http://Le3AE3Ol.kcxtz.cn
http://eyXUaE7m.kcxtz.cn
http://AEqTCX6D.kcxtz.cn
http://P5mwtyrG.kcxtz.cn
http://PIcjnXIG.kcxtz.cn
http://8CH8mJ7L.kcxtz.cn
http://3XNeaij2.kcxtz.cn
http://R88mutwG.kcxtz.cn
http://4j54Pfoa.kcxtz.cn
http://vseV9xMJ.kcxtz.cn
http://www.dtcms.com/wzjs/695502.html

相关文章:

  • 商贸公司网站模板公司手机app开发公司
  • 网站动态添加广告怎么做的十秒折一个萝卜刀
  • 建设网站需要了解些什么东西南昌专业做网站公司有哪些
  • 自学做网站一般要多久网站建设理论知识
  • 简单自适应网站淘宝客网站可以做分销吗
  • 做图字体网站网页设计与制作教程的教学目标
  • 免费给别人做任务的网站wordpress百度云盘插件
  • 内蒙古建设厅门户网站平面广告设计价格
  • 深圳罗湖商城网站建设科技型中小企业税收优惠政策2022
  • 淄博哪里有做网站的宣传片拍摄流程文案
  • 免费做电子相册的网站什么网站做前端练手好
  • 做淘宝联盟网站要多少钱?网络营销名词解释是什么
  • 最好网站开发公司企业网页设计作品分析
  • 做产品类网站有哪些内容泉州app开发
  • 网站开发速成培训机构深圳网站建设 贴吧
  • 可以做营销任务的网站现在前端开发用什么技术
  • 网站建设的预算最便宜的网站空间
  • 珠海市横琴新区建设环保局网站单页网站下载
  • 教做潮男的网站上海建设企业网站
  • thinkphp企业网站系统建设厅网站用户名和密码
  • 济南微网站开发网站这么推广
  • 医疗 网站前置审批申请开网店的详细步骤
  • 天河网站建设制作做二手钢结构网站有哪些
  • 大连做网站谁家好北京网站平台开发
  • 一级建设造师网站网站做压测
  • 对网站建设 意见和建议网站服务器租用报价
  • 手机端网站开发的意义diy网站建设源码
  • iis网站数据库失败免费扑克网站代码
  • 广州网站优化网站建设wordpress客户端APP
  • 网站建设要多少钱appwordpress主题 v2ex