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

公司做网站的费用怎么做账建筑招标网站

公司做网站的费用怎么做账,建筑招标网站,网站如何做会员通用,昆明网站建设问问q778925409耍強给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。 示例 1: 输入: s “abcabcbb” 输出: 3 解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。 示例 2: 输入: s “bbbbb” 输出: 1 解释: 因为无重复字符的最长子串是 “…

给定一个字符串 s ,请你找出其中不含有重复字符的 最长 子串 的长度。

示例 1:
输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。

示例 2:
输入: s = “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。

示例 3:
输入: s = “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。

提示:
0 <= s.length <= 5 ∗ 10 4 5 * 10^4 5104
s 由英文字母、数字、符号和空格组成


知识点:
滑动窗口、哈希表、字符串


根据官解,有以下结论
①一旦涉及出现次数 ,就需要使用哈希表。
字符串类型的题:key=字符,value=出现次数
②一旦涉及子串,通常能通过滑动窗口进行动态扩张


解:
首先,对空字符串进行处理,直接返回0,提高效率。

然后,定义变量max存储最长子串的长度。定义一个HashMap,存储每个字符在字符串中出现的下标。此外,定义一个start变量,表示滑动窗口的起始下标。

接着,for循环遍历整个字符串,通过s.charAt(i)获取当前遍历的字符

在for循环内:
1、若当前遍历的字符没在map中,那么通过map.put(s.charAt(i), i);将当前字符加入map,能保证滑动窗口内无重复字符,这里键值对的value=i,表示的是当前遍历的字符的下标。
2、若当前遍历的字符在map中,我们要进行if-else判断:
①若当前遍历的这个重复字符,目前在滑动窗口内,则移动滑动窗口的左边界start到当前遍历的字符的下一个位置。原因是:既然重复的字符在滑动窗口内,如果左边界还是在滑动窗口内的这个字符的位置,或者是滑动窗口内的这个字符的左侧,整个滑动窗口还是重复的,没有必要这么做,因此我们直接让start移动到map.get(s.charAt(i)) + 1的位置
这里以测试样例3说明原因中的第一点。第二点根据文字描述即可想象出情况,就不例举了。
原因1说明(测试样例3)
②若当前遍历的这个重复字符,在滑动窗口前面,则不处理。因为我们看的就是滑动窗口内的情况,不考虑滑动窗口外的情况
在上面的重复字符处理结束后,通过map.put(s.charAt(i), i);将当前字符加入map。

最后,我们通过Math.max(max, i - start + 1)获取每次滑动窗口遍历的最长子串的长度。

最终返回max变量。

class Solution {public int lengthOfLongestSubstring(String s) {//空字符串直接返回if (s.length() == 0) {return 0;}//最长子串长度int max = 0;//HashMap存储每个字符出现在字符串中的下标Map<Character, Integer> map = new HashMap<>();//滑动窗口起始下标int start = 0;//end = i: 隐式表示滑动窗口结束下标//遍历字符串的每个字符for (int i = 0; i < s.length(); i++) {//已出现过当前遍历的字符if (map.containsKey(s.charAt(i))) {//若当前遍历的这个重复字符,目前在滑动窗口内,则移动start到这个重复字符的下一个位置if (map.get(s.charAt(i)) >= start && map.get(s.charAt(i)) <= i) {start = map.get(s.charAt(i)) + 1;}//若当前遍历的这个重复字符,在滑动窗口前面,则不处理else if (map.get(s.charAt(i)) < start) {start = start;}}//将当前遍历字符加入map//1.当前遍历字符不在map中,则滑动窗口内必无重复字符//2.当前遍历字符在map中,而此时已完成滑动窗口边界的处理,此时字符也不会在滑动窗口中重复出现map.put(s.charAt(i), i);//获取当前子串的长度max = Math.max(max, i - start + 1);//数组下标从0开始,则子串长度需要加1}return max;}
}

引用:

  1. java遍历String字符串的方法

文章转载自:

http://s6FRPdq9.qymqh.cn
http://GczK6DTK.qymqh.cn
http://2jQ8wgbp.qymqh.cn
http://us3e1Npx.qymqh.cn
http://7LTjAazc.qymqh.cn
http://rFyfS048.qymqh.cn
http://10j4P13l.qymqh.cn
http://lBOMDWkE.qymqh.cn
http://EVP5EKCz.qymqh.cn
http://LlvkjL4w.qymqh.cn
http://GX5wD37k.qymqh.cn
http://4lOCdNYM.qymqh.cn
http://L9FF2lg7.qymqh.cn
http://akquzKWb.qymqh.cn
http://oiCYtb0d.qymqh.cn
http://GmLKTEtv.qymqh.cn
http://d66iesXI.qymqh.cn
http://VWMRma3C.qymqh.cn
http://4zW41PyY.qymqh.cn
http://1t0ol6OO.qymqh.cn
http://3Olyg4Km.qymqh.cn
http://7vdpamLZ.qymqh.cn
http://hzD8GNAl.qymqh.cn
http://cHsomq1x.qymqh.cn
http://UiVrbGMu.qymqh.cn
http://sugVvi71.qymqh.cn
http://fS1vC7zW.qymqh.cn
http://ROoPhiMw.qymqh.cn
http://SXeDJTfu.qymqh.cn
http://y0bL9Uj7.qymqh.cn
http://www.dtcms.com/wzjs/764197.html

相关文章:

  • 用fullpage做的网站河南核酸检测vip
  • 家居网站建设营销推广网站推广公司运营模式
  • 网站栅格新乡平原新区建设局网站
  • 国外网站建设现状wordpress积分代码
  • 广西两学一做网站深圳提倡居家办公
  • 如何模板建站承接php网站建设
  • 专业网站建设网站设计软件如何开发制作
  • 网站建设中手机版中国建设工程造价网
  • 电信网站备案郑州定制网站建设
  • 门户网站开源win主机wordpress
  • 网页制作与网站建设答案教师网络培训
  • 微网站地图定位wordpress怎么多用户
  • 用什么软件做公司网站免费纯ftp空间
  • 建一个网站大概多少钱天水网站建设公司
  • 专门下载工程建设标准的网站卧龙区建网站
  • 绍兴模板建站代理网站开发用什么框架合适
  • 怎么用自己的主机做网站服务器吗科技 网站 推荐
  • 运城市住房和城乡建设部网站网站引导页设计
  • 公司网站怎么做备案信息三元里网站建设
  • 网站建设进度表模板下载给公司做门户网站 可以用凡客吗
  • qq刷网站空间本地计算机做网站服务器
  • 重庆建设安全员信息网站提供网站建设框架
  • 天津网站开发公司请列出页面上影响网站排名的因素
  • 做商城网站需要什么wordpress自适应手机
  • 网站建设与管理工作内容活动策划方案详细模板
  • 网站备案负责人照片免费申请商家收款码
  • 网站建设公司的服务特点兴义建设局网站
  • 极速建站系统金华网站建设
  • 做我的世界缩略图的网站行业网站开发方案
  • 极品wordpress素材教程网站百度无广告搜索引擎