剑指 Offer II 016. 不含重复字符的最长子字符串

83 阅读1分钟

剑指 Offer II 016. 不含重复字符的最长子字符串

方法1

var lengthOfLongestSubstring = function (s) {
    var arr = s.split("")
    var maxlen = 0;
    for (var i = 0; i < arr.length; i++) {
        var brr = []
        var j = i;
        while (arr[j] && !brr.includes(arr[j])) {
            brr.push(arr[j])
            j++
        }
        maxlen = Math.max(maxlen, brr.length)
    }
    return maxlen
};

方法2

const lengthOfLongestSubstring1 = (s) => {
    var arr = [];
    var max = 0;
    var len = s.length;
    for (var i = 0; i < len; i++) {
        var index = arr.indexOf(s[i]);
        if (index > -1) { arr.splice(0, index + 1); }
        arr.push(s[i]);
        if (max < arr.length) max = arr.length;
    }
    return max;
};