原题地址: https://leetcode.com/problems/longest-substring-without-repeating-characters/
给定一个字符串,找出最长的没有重复字符的子串。
输入为: “abcabcbb”
答案是”abc”,长度为3。
输入为: “bbbbb”
答案是”b”,长度为1。
输入为: “pwwkew”
答案是”wke”,长度为3。
明显还是变宽滑动窗口,窗口用字符数组来做(这次是+1入窗口,-1出窗口),然后我们可以滑动right扩大窗口,出现重复字符就保存在一个hashmap里,只要重复字符存在,我们就滑动left减小窗口,没有了重复字符,我们就比较下窗口字符串是不是目前最短的。
代码如下:
本题代码地址为: https://github.com/tinyfool/leetcode/tree/master/src/p0003
本文假设你对滑动窗口概念有所了解,如果你对滑动窗口的概念不够了解,请参看我介绍 滑动窗口的文章,里面有详细的解释 。