lengthOflongestSubstring
试例:
输入: "abcabcbb"
输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
/**** @param {string} s* 无重复字符的最长子串*/
function lengthOfLongestSubstring(s) {if (typeof s !== 'string' || s.length === 0) return 0;const len = s.length;let maxSubstring = s[0];let substr = maxSubstring;const maxLengthString = (a, b) => {let result = a;if (a.length < b.length) {result = b;return result;}return result;};for (let i = 1; i <= len; i += 1) {if (substr.indexOf(s[i]) === -1) {substr += s.substring(i, i + 1);maxSubstring = maxLengthString(maxSubstring, substr);} else {substr = substr.substring((substr.indexOf(s[i]) + 1));substr += s[i];maxSubstring = maxLengthString(maxSubstring, substr);}}// console.log(maxSubstring);return maxSubstring.length;
}
写的测试
/**** @param {number} count* @param {number} length** 生成 指定个数,指定长度随机 数字 字符串数组*/
function randomString(count, length) {const result = [];for (let i = 0; i < count; i += 1) {let str = '';let len = length;while (len > 0) {str += `${Math.floor(Math.random() * 9 + 1)}`;len -= 1;}result.push(str);}return result;
}