# 题目描述

给定一个字符串,请你找出其中不含有重复字符的最长子串的长度。

示例 1:

输入: s = "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。 示例 2:

输入: s = "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。   请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。 示例 4:

输入: s = "" 输出: 0   提示,0 <= s.length <= 5 * 104,s 由英文字母、数字、符号和空格组成

# 解法一,暴力破解

var lengthOfLongestSubstring = function(s) {
    if (s.length === 0) return 0
    if (s.length === 1) return 1

    let allStr = []
    for (let i = 0; i < s.length; i++) {
        for (let j = i + 1; j < s.length; j++) {
            allStr.push(s.substring(i,j))
        }
    }
    let answerArr = []
    allStr.forEach(e => {
        let hashMap = {}
        Array.prototype.forEach.call(e, (d) => {
            if (hashMap[d]) {
                hashMap[d] += hashMap[d]
            } else {
                hashMap[d] = 1
            }
        })
        if (Object.values(hashMap).every(e => {return e === 1})) {
            answerArr.push(e.length)
        }
    })
    return answerArr.sort((a,b) => {return b - a})[0]
};
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
一笔写于: 3/28/2021, 6:49:24 PM
扫码添加我的微信
个人
个人号
公众号
公众号