双指针之无重复字符最长子串

力扣第三题

package com.zhang.reflection.面试.算法模版.双指针;
import java.util.HashSet;
import java.util.Set;
/**
 * 给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
 *
 * s = "abcabcbb"
 *
 * 3
 */
public class 双指针 {
    public int lengthOfLongestSubstring(String s) {
        //Set集合用来保存已经存在的字符串
        Set<Character> sets=new HashSet<>();
        int left=0;  //左指针
        int right=0;  //右指针
        int result=0;
        while(right<s.length()){
            char ch=s.charAt(right++);
            while(sets.contains(ch)){
                sets.remove(s.charAt(left));
                left++;
            }
            sets.add(ch);
            result=Math.max(result,right-left);
        }
        return result;
    }
}
全部评论

相关推荐

机械打工仔:我来告诉你原因,是因为sobb有在线简历,有些HR为了快会直接先看在线简历,初步感觉不合适就不会找你要详细的了
投了多少份简历才上岸
点赞 评论 收藏
分享
06-10 21:15
门头沟学院 Java
宁阿:好多这种没🧠的公司,他们估计都不知道毕业的人不能给安排实习岗
实习吐槽大会
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务