3. 无重复字符的最长子串

输入: s = “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
image.png

  1. //滑动窗口,时间On,空间O1
  2. func lengthOfLongestSubstring(s string) int {
  3. start, end := 0, 0
  4. for i := 0; i < len(s); i++ {
  5. index := strings.Index(s[start:i], string(s[i])) //语言特性,判重map
  6. if index == -1 {
  7. if i+1 > end {
  8. end = i + 1
  9. }
  10. } else {
  11. start += index + 1
  12. end += index + 1
  13. }
  14. }
  15. return end - start
  16. }

image.png