10.无重复字符的最长子串-滑动窗口

思路:

滑动窗口,遍历,每次截取start到i的字符串,start在碰到重复字符时会发生变化start+=in+1

package main

import "strings"

func lengthOfLongestSubstring(s string) int {
	start, end := 0, 0

	for i := 0; i < len(s); i++ {
		in := strings.Index(s[start:i], string(s[i]))
		if in == -1 {
			if i+1 > end {
				end = i + 1
			}
		} else {
			start += in + 1
			end += in + 1
		}
	}

	return end - start

}

Last updated