✊ 作者: 七弦 ✊不积跬步,无以至千里;不积小流,无以成江海。 ✊ 时间:2021.07.30 ✊ 题目来源: 力扣 - 3

1. 题目说明

image.png

2. 滑动窗口

  1. var lengthOfLongestSubstring = function (s) {
  2. if (!s || s.length < 1 ) {
  3. return 0
  4. }
  5. var bazelIndex = 0, // 记录滑动窗口的索引
  6. len = s.length, // 字符长度
  7. max = 0, // 字符串最大长度
  8. i = 0;// for循环变量i
  9. for (i; i < len; i++) {
  10. if (s.indexOf(s[i], bazelIndex) < i ) {
  11. // 条件成立,说明字符重复了
  12. // 滑动窗口, bazelIndex 从下一个位置开始
  13. bazelIndex = s.indexOf(s[i], bazelIndex) + 1
  14. } else {
  15. // 无重复字符
  16. // 更新max
  17. max = Math.max(max, i - bazelIndex + 1)
  18. }
  19. }
  20. return max
  21. }