无重复字符的最长子串
来源: LeetCode No.003
问题描述:
给定一个字符串,找出不含有重复字符的最长子串的长度。
示例:
输入: "abcabcbb"
无重复字符的最长子串是 "abc"
,其长度为 3。
输入: "bbbbb"
无重复字符的最长子串是 "b"
,其长度为 1。
输入:"pwwkew"
无重复字符的最长子串是 "wke"
,其长度为 3。
(请注意,答案必须是一个子串,“pwke” 是一个子序列 而不是子串。)
代码实现:
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
var res = 0;
var str = "";
for (var i = 0; i < s.length; i++) {
var char = s.charAt(i);
var index = str.indexOf(char);
if (index === -1) {
str += char;
res = res < str.length ? str.length : res;
} else {
str = str.substr(index + 1) + char;
}
}
return res;
};