• LeetCode-3:Longest Substring Without Repeating Characters


    描述:给一个字符串s,找到它的最长子串(无任何字符重复)substring的长度。

    举例:

        Input: "abcabcbb"

        Output: 3

        Explanation: The answer is "abc", which the length is 3.

    思路:

        我的做法是从左至右扫描,设repeat[c],记录字符c上一次在字符串s中出现的位置。假设现在正在扫描s[j]字符,而之前已经记录s[i,j-1]都未出现任何重复字符。假设检测到s[j]上一次出现的位置repeat[j]在区间[i,j-1]内,那么可以截取子串s[i,j-1]并与当前smax做优选。接着我们可以从repeat[j]开始,更新区间为s[repeat[j]+1,j]并继续向后扫描处理。

        官方的思路其实跟我的一致,不过叙述上有所差别。它提出了滑动窗口SliddingWindow的概念,并且使用HashSet存储窗口P[i,j)内的所有未重复字符。当发现s[j]在HashSet中重复时就要动态更新窗口下限i,尽可能大地向右滑动。详见:https://leetcode.com/problems/longest-substring-without-repeating-characters/solution/

     
  • 相关阅读:
    运行级别和root密码找回
    磁盘情况查询
    linux磁盘分区、挂载
    三、本地负载均衡器与openfeign声明式客户端
    二、Nacos服务注册与发现
    一、微服务架构演变过程
    shell工具
    Netty概述
    垃圾回收概述及算法
    执行引擎
  • 原文地址:https://www.cnblogs.com/Jackie-Snow/p/9531958.html
Copyright © 2020-2023  润新知