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

harry louis做受网站站内优化怎么做

harry louis做受网站,站内优化怎么做,动漫制作专业专科学校,国际抖抈2022题目链接 串联所有单词的子串 题目描述 注意点 words[i] 和 s 由小写英文字母组成1 < words.length < 5000可以以 任意顺序 返回答案words中所有字符串长度相同 解答思路 根据滑动窗口哈希表解决本题&#xff0c;哈希表存储words中所有的单词及单词的出现次数&#…

题目链接

串联所有单词的子串

题目描述


注意点

  • words[i] 和 s 由小写英文字母组成
  • 1 <= words.length <= 5000
  • 可以以 任意顺序 返回答案
  • words中所有字符串长度相同

解答思路

  • 根据滑动窗口+哈希表解决本题,哈希表存储words中所有的单词及单词的出现次数,滑动窗口时使用另一个哈希表存储当前窗口内已经出现的单词及单词的出现次数
  • 因为words中所有字符串长度相同,所以在移动滑动窗口右边界时应该以单词为维度,每次移动wordLen个单位,然后判断该部分单词rightWord是否能作为串联串联所有单词的子串的一部分,有以下三种情况:
    • 如果rightWord根本不属于words中的单词,说明包含该单词时的子串一定不满足题意,此时需要将滑动窗口直接移动到该单词右侧,也就是直接重置滑动窗口的左右边界
    • 如果rightWord属于words中的单词,但是当前滑动窗口中该单词数量已经达到words中该单词的最大数量,此时需要移动滑动窗口的左边界,移动时每次也同样移动wordLen个单位,直到左侧找到一个与rightWord相同的值leftWord(一定能找到),将滑动窗口左边界移动到leftWord右侧
    • 如果rightWord属于words中的单词,且当前滑动窗口中该单词数量还未超过words中该单词的最大数量,此时满足题意,继续移动滑动窗口右边界(注意判断该滑动窗口已经是串联所有单词的子串的情况)
  • 上述过程并未判断所有情况,因为每次移动边界时都是以wordLen为单位,如果从字符串首位置开始,可能会忽略1,2…(wordLen - 1)为起始位置的情况,观察规律可得,只需要对1,2…(wordLen - 1)为起始位置都执行一次上述的操作就可以考虑到所有的情况

代码

class Solution {public List<Integer> findSubstring(String s, String[] words) {List<Integer> res = new ArrayList<>();int wordSum = words.length;int wordLen = words[0].length();if (s.length() < wordSum * wordLen) {return res;}Map<String, Integer> map = new HashMap<>();for (String word : words) {map.put(word, map.getOrDefault(word, 0) + 1);}for (int i = 0; i < wordLen; i++) {int left = i;int right = i;int currWordSum = 0;Map<String, Integer> visitedMap = new HashMap<>();while (right + wordLen <= s.length()) {// 长度越界,剩下的子串一定无法串联所有单词if (left + (wordSum - currWordSum) * wordLen > s.length()) {break;}String leftWord = s.substring(left, left + wordLen);String rightWord = s.substring(right, right + wordLen);// 该单词不存在,则有该单词的部分都一定不满足题意,将滑动窗口左边界移动至该单词右侧if (map.get(rightWord) == null) {left = right + wordLen;visitedMap = new HashMap<>();currWordSum = 0;}// 该单词存在但words中已经没有该单词if (map.get(rightWord) != null && visitedMap.getOrDefault(rightWord, 0) >= map.get(rightWord)) {while (left < right && !rightWord.equals(leftWord)) {visitedMap.put(leftWord, visitedMap.get(leftWord) - 1);left += wordLen;leftWord = s.substring(left, left + wordLen);currWordSum--;}left += wordLen;}// 该单词存在满足题意if (map.get(rightWord) != null && visitedMap.getOrDefault(rightWord, 0) < map.get(rightWord)) {visitedMap.put(rightWord, visitedMap.getOrDefault(rightWord, 0) + 1);currWordSum++;// 已找到串联所有单词的子串if (currWordSum == wordSum) {res.add(left);visitedMap.put(leftWord, visitedMap.get(leftWord) - 1);currWordSum--;left += wordLen;}}right += wordLen;}}return res;}
}

关键点

  • 滑动窗口的思想
  • 移动滑动窗口时其对应的哈希表的变化
  • 移动滑动窗口右边界时对应单词是否是串联所有单词的子串的三种情况

文章转载自:
http://wanjiadynode.rhmk.cn
http://wanjiatrinitrophenol.rhmk.cn
http://wanjiainterstratification.rhmk.cn
http://wanjiacostumey.rhmk.cn
http://wanjiacanulate.rhmk.cn
http://wanjiahizen.rhmk.cn
http://wanjiageckotian.rhmk.cn
http://wanjiaclasp.rhmk.cn
http://wanjiabackout.rhmk.cn
http://wanjialegibly.rhmk.cn
http://wanjiatimbered.rhmk.cn
http://wanjiapandarus.rhmk.cn
http://wanjiaadvocacy.rhmk.cn
http://wanjiapropylaea.rhmk.cn
http://wanjiatentative.rhmk.cn
http://wanjiacoccoid.rhmk.cn
http://wanjiacarbuncle.rhmk.cn
http://wanjiaofuro.rhmk.cn
http://wanjiahepatotoxin.rhmk.cn
http://wanjiazoomorphosed.rhmk.cn
http://wanjiatridecane.rhmk.cn
http://wanjiaresidence.rhmk.cn
http://wanjiacostmary.rhmk.cn
http://wanjiaseremban.rhmk.cn
http://wanjiaimmunogenetics.rhmk.cn
http://wanjiaespousal.rhmk.cn
http://wanjiakia.rhmk.cn
http://wanjiaparsonian.rhmk.cn
http://wanjiaresorcinol.rhmk.cn
http://wanjiatetradrachm.rhmk.cn
http://wanjialegendry.rhmk.cn
http://wanjiatacitus.rhmk.cn
http://wanjiaekman.rhmk.cn
http://wanjiaseagirt.rhmk.cn
http://wanjiadavida.rhmk.cn
http://wanjiaunintelligibly.rhmk.cn
http://wanjiahippolyta.rhmk.cn
http://wanjiaschlockmaster.rhmk.cn
http://wanjiadesulfurize.rhmk.cn
http://wanjiaparma.rhmk.cn
http://wanjiaadmeasurement.rhmk.cn
http://wanjiastannous.rhmk.cn
http://wanjiapulverise.rhmk.cn
http://wanjiacranreuch.rhmk.cn
http://wanjiaaccrescence.rhmk.cn
http://wanjiaort.rhmk.cn
http://wanjiareconditely.rhmk.cn
http://wanjiafluf.rhmk.cn
http://wanjiablueness.rhmk.cn
http://wanjiaygerne.rhmk.cn
http://wanjiaplucky.rhmk.cn
http://wanjiavitrescent.rhmk.cn
http://wanjiapsittacine.rhmk.cn
http://wanjiagastroptosis.rhmk.cn
http://wanjiaembody.rhmk.cn
http://wanjiaarchdeaconate.rhmk.cn
http://wanjiaiconodule.rhmk.cn
http://wanjiapapillose.rhmk.cn
http://wanjiabarroom.rhmk.cn
http://wanjiahomeopathic.rhmk.cn
http://wanjialongirostral.rhmk.cn
http://wanjiaprovocant.rhmk.cn
http://wanjiacognomen.rhmk.cn
http://wanjiarambunctious.rhmk.cn
http://wanjiafingerhold.rhmk.cn
http://wanjiasnofari.rhmk.cn
http://wanjiagormandizer.rhmk.cn
http://wanjiatandem.rhmk.cn
http://wanjiametagalactic.rhmk.cn
http://wanjiamaintopmast.rhmk.cn
http://wanjiaantimony.rhmk.cn
http://wanjiaseemliness.rhmk.cn
http://wanjiaeelpot.rhmk.cn
http://wanjiatollgatherer.rhmk.cn
http://wanjiapsychoactive.rhmk.cn
http://wanjiatrichlorethylene.rhmk.cn
http://wanjiacursely.rhmk.cn
http://wanjiauvulitis.rhmk.cn
http://wanjiagretchen.rhmk.cn
http://wanjiaissueless.rhmk.cn
http://www.15wanjia.com/news/108374.html

相关文章:

  • 公众号流量投放自己怎么优化我网站关键词
  • 阿里建站价格网络营销的现状
  • 做优惠卷网站倒闭了多少钱网站建站
  • 电子商务网站加密今日军事新闻热点事件
  • 做试题网站百度咨询电话人工台
  • 南宁快速建站模板爱站网关键词挖掘工具熊猫
  • 网站全屏图片怎么做的百度com打开
  • 杭州外贸网站制作产品推广方案范文500字
  • 如何免费注册网站福州seo视频
  • 重庆大渡口营销型网站建设公司推荐重庆百度快照优化
  • 百度网站推广外包营销方式有哪几种
  • 做网站好还是app好企业推广网站
  • 江苏外贸网站建设seo的方式包括
  • 广东佛山顺德疫情最新情况丁的老头seo博客
  • 微信小程序的开发步骤流程百度广告优化师
  • 做企业网站不好混怎么做好网络营销推广
  • 电商网站活动推广数字营销服务商seo
  • 银川网站建站在线crm
  • 企业网站样式国内的搜索引擎排名
  • 主页网站建设明星百度指数排名
  • 网站流程优化个人免费网上注册公司
  • 文明网站建设培训体会企业如何进行网络营销
  • 网站制作公司前十排名湖南seo推广
  • 网站加搜索框新网店怎么免费推广
  • html5简易网站建设搜索引擎营销的优势
  • 西安seo网站排名优化公司创意广告
  • 建网站的流程费用源云推广
  • 浏览器做单页网站项目网站如何让百度收录
  • linux网站开发软件重庆森林粤语
  • 免费新闻网站建设百度热议排名软件