LeetCode 第3题 Longest Substring Without Repeating Characters【滑动窗口】(Java)

原题地址: https://leetcode.com/problems/longest-substring-without-repeating-characters/

要求如下:

给定一个字符串,找出最长的没有重复字符的子串。

例 1:

    输入为: “abcabcbb”

    输出位: 3

    答案是”abc”,长度为3。

例 2:

    输入为: “bbbbb”

    输出位: 1

    答案是”b”,长度为1。

例 3:

    输入为: “pwwkew”

    输出位: 3

    答案是”wke”,长度为3。

明显还是变宽滑动窗口,窗口用字符数组来做(这次是+1入窗口,-1出窗口),然后我们可以滑动right扩大窗口,出现重复字符就保存在一个hashmap里,只要重复字符存在,我们就滑动left减小窗口,没有了重复字符,我们就比较下窗口字符串是不是目前最短的。

代码如下:

本题代码地址为: https://github.com/tinyfool/leetcode/tree/master/src/p0003

本文假设你对滑动窗口概念有所了解,如果你对滑动窗口的概念不够了解,请参看我介绍滑动窗口的文章,里面有详细的解释

打赏

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据