leetcode3:无重复字符的最长子串
给定一个字符串 s ,请你找出其中不含有重复字符的 最长子串 的长度。
示例1
输入: s = "abcabcbb" 输出: 3
解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
问题分析
- 搜索字符串
- 最长字符串
- 记录max/str
我的实现
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function (s) {
var max = 0;
for (var i = 0; i < s.length; i++) {
var len = getUniqLength(s.slice(i));
if (len > max) {
max = len;
}
}
return max;
};
// 找出不重复最长的字符串
function getUniqLength(s) {
var res = [];
for (var i = 0; i < s.length; i++) {
var val = s[i];
if (!res.includes(val)) {
res.push(val);
} else {
// 数组中已经存在,即中止搜索
return res.length;
}
}
}
参考
https://leetcode-cn.com/problems/longest-substring-without-repeating-characters/