1. 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度
  1. 示例 1:
  2. 输入: s = "abcabcbb"
  3. 输出: 3
  4. 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3
  5. 示例 2:
  6. 输入: s = "bbbbb"
  7. 输出: 1
  8. 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1
  9. 示例 3:
  10. 输入: s = "pwwkew"
  11. 输出: 3
  12. 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3
  13. 请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
  14. 示例 4:
  15. 输入: s = ""
  16. 输出: 0
  17. 提示:
  18. 0 <= s.length <= 5 * 104
  19. s 由英文字母、数字、符号和空格组成

方法:

  1. var lengthOfLongestSubstring = function(s) {
  2. let arr = [];
  3. let max = 0;
  4. for (let i = 0; i < s.length; i++) {
  5. let index = arr.indexOf(s[i])
  6. if (index !== -1) {
  7. arr.splice(0, index + 1);
  8. }
  9. arr.push(s.charAt(i));
  10. max = Math.max(arr.length, max);
  11. }
  12. return max;
  13. };