题目:给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度。
示例一:输入: “abcabcbb”
输出: 3
解释: 因为无重复字符的最长子串是 “abc”,所以其长度为 3。
示例二:输入: “bbbbb”
输出: 1
解释: 因为无重复字符的最长子串是 “b”,所以其长度为 1。
示例三:输入: “pwwkew”
输出: 3
解释: 因为无重复字符的最长子串是 “wke”,所以其长度为 3。
请注意,你的答案必须是 子串 的长度,“pwke” 是一个子序列,不是子串。
解析一:根据题目可知,返回的字符串应该是不含重复字符的,所以可以利用循环遍历字符串s;将遍历的字符的存在一个新的字符串res_str中;当碰到新的字符串res_str中含有该字符时,记录此时res_str的长度,并将res_str中含有重复的字符截掉,具体代码如下:
var lengthOfLongestSubstring = function(s) {
let str ="";
let max_length =0;
for(let i=0;i<s.length;i++){
!str.includes(s[i])?str =str+s[i]:str =str.slice(str.indexOf(s[i])+1)+s[i];
str_length =str.length;
if(str_length>=max_length){
max_length =str_length;
}
}
return max_length;
};
本文章仅作为个人的学习记录,具体解题思路请查看以下网址!
来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/longest-substring-without-repeating-characters