给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例 1:
输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc",所以其长度为 3。
示例 2:
输入: "bbbbb" 输出: 1 解释: 因为无重复字符的最长子串是 "b",所以其长度为 1。
示例 3:
输入: "pwwkew" 输出: 3 解释: 因为无重复字符的最长子串是 "wke",所以其长度为 3。
请注意,你的答案必须是 子串 的长度,"pwke" 是一个子序列,不是子串。
/**
* @param {string} s
* @return {number}
*/
var lengthOfLongestSubstring = function(s) {
var tempResult = '' // 临时存储子串
var result = '' // 存储最长子串
for(var i = s.length-1 ; i>=0 ; i--) {
if(tempResult.indexOf(s[i]) === -1) { // 如果子串中不存在s[i]
tempResult += s[i]
if(tempResult.length > result.length) result = tempResult;
} else { // 如果子串中存在s[i]
if(tempResult.length > result.length) {
result = tempResult
}
let index = tempResult.indexOf(s[i]) // 重复字符的位置
tempResult = tempResult.slice(index+1) + s[i] // 截取字符串
}
}
return result.length
};
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。