首页 > 其他分享 >高频笔试题之最大不重复子串长度

高频笔试题之最大不重复子串长度

时间:2023-12-13 11:37:26浏览次数:23  
标签:子串 right int 笔试 characterSet result 长度 高频

* 示例 1:
*
* 输入: s = "abcabcbb"
* 输出: 3
* 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
* 示例 2:
*
* 输入: s = "bbbbb"
* 输出: 1
* 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
* 示例 3:
*
* 输入: s = "pwwkew"
* 输出: 3
* 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。

* 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。

废话不多说,直接上答案

//滑动窗口解决此类问题
public int lengthOfLongestSubstring(String s) {
int right = 0;//窗口右边界
int result = 0;//返回结果
int length = s.length();
Set<Character> characterSet = new HashSet<>();//由于题目要求只是返回长度,因此可以使用hashset

for (int i = 0; i < length; i++) {//i就相当于窗口左边界
if (i != 0) {//窗口左边界向前移动一位,对应的子串长度就减少一位 然后右窗口继续向右滑动
characterSet.remove(s.charAt(i-1));
}
//窗口右边界向右滑动的过程中断条件
//1.不能越界
//2.集合中不能有重复字符
while (right < length && !characterSet.contains(s.charAt(right))) {
characterSet.add(s.charAt(right));
++right;
}
result = Math.max(result, characterSet.size());
}
return result;
}

标签:子串,right,int,笔试,characterSet,result,长度,高频
From: https://www.cnblogs.com/yushijieWannaBeStrong/p/17898689.html

相关文章

  • SpringBoot+线程池实现高频调用http接口并多线程解析json数据
    场景Springboot+FastJson实现解析第三方http接口json数据为实体类(时间格式化转换、字段包含中文):https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/134872936Java中ExecutorService线程池的使用(Runnable和Callable多线程实现):https://blog.csdn.net/BADAO_LIUMAN......
  • 代码随想训练营第五十七天(Python)| 647. 回文子串、516.最长回文子序列
    647.回文子串1、中心扩散法+双指针classSolution:defcountSubstrings(self,s:str)->int:res=0foriinrange(len(s)):#以i为中心res+=self.countPalind(i,i,s,len(s))#以i和i+1为中心......
  • 面试高频:双指针---6题14图一次搞懂
    使用双指针是降低算法复杂度的一个有效途径,有些问题的暴力解法时间复杂度是O(n^2),但使用双指针可以大幅度降低算法复杂度。如果面试者能将求解过程从暴力法优化到双指针,说明面试者的基础知识、代码能力、逻辑思维都是十分扎实的。同贪心算法一样,双指针的难点在于自己想不出、别人......
  • Java面试高频八股文
    一、Java基础(一)1.面向对象和面向过程的区别面向过程把解决问题的过程拆成一个个方法,通过一个个方法的执行解决问题;面向对象会先抽象出对象,然后用对象执行方法的方式解决问题;面向对象开发的程序一般更易维护、易复用、易扩展;    2.基本类型与包装类①Java中的几种......
  • [LeetCode Hot 100] LeetCode3. 无重复字符的最长子串
    题目描述思路:滑动窗口定义需要维护的变量//1.定义需要维护的变量intmax_len=0;Map<Character,Integer>hashmap=newHashMap<>();窗口不满足条件,窗口收缩。窗口不是固定大小所以用while//4.窗口不满足条件:窗口收缩//满足这个条件说明有重复元素//这......
  • 【教3妹学编程-算法题】统计子串中的唯一字符
    3妹:“太阳当空照,花儿对我笑,小鸟说早早早,你为什么背上炸药包”2哥 :3妹,什么事呀这么开发。3妹:2哥你看今天的天气多好啊,阳光明媚、万里无云、秋高气爽,适合秋游。2哥:是啊,立冬之后天气多以多云为主,好不容易艳阳高照。可是你不能秋游,赶紧收拾收拾上班去啦3妹:哼,好吧~2哥:给你出了一道题......
  • 华为认证 | 华为HCIE笔试一共多少道题?HCIE证书怎么查?
    HCIE证书的含金量非常高。然而,要想获得这张宝贵的证书,考生需要先通过HCIE笔试。那么,华为HCIE笔试到底有多少道题?如何查询HCIE证书呢?下面将为您一一解答。01华为HCIE笔试一共多少道题华为HCIE笔试题目数量并不是固定的,而是根据不同的考试级别和考试内容有所差异。对于HCIE-Datacom......
  • 数据库面试题从浅入深高频必刷「2024版」
    什么是数据库事务,它的ACID属性是什么?数据库事务是一组数据库操作的逻辑单元,要么全部执行成功,要么全部回滚。ACID属性是指原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)和持久性(Durability)。以下是对ACID属性的详细解释:原子性(Atomicity):原子性确保一个事务中的所有操......
  • 【滑动窗口】无重复字符的最长字串、找到字符串中所有字母异位词、串联所有单词的子串
    一、无重复字符的最长子串题目描述定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。题目链接:无重复字符的最长子串示例1:输入:s="abcabcbb"输出:3解释:因为无重复字符的最长子串是"abc",所以其长度为3。示例2:输入:s="bbbbb"输出:1解释:因......
  • 前端学习笔记202307学习笔记第六十七天-前端面试-this笔试题讲解1
     ......