We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
给定一个字符串s,请你找出其中不含有重复字符的最长子串的长度。
s
这个问题可以通过滑动窗口算法来解决。我们可以使用两个指针,即left和right,来构建和维护一个窗口,确保窗口内的字符不重复。通过不断地移动指针,我们可以找到最长的不含重复字符的子串。
left
right
初始化两个指针left和right,并初始化最长子串的长度maxLength为0。
maxLength
创建一个哈希集合(或者字符数组)set来存储窗口内的字符。哈希集合可以快速判断字符是否出现过。
set
使用right指针向右移动,扩大窗口。在每次移动时,检查当前字符是否已经在哈希集合中。
right - left + 1
重复步骤3,直到right指针达到字符串的末尾。
返回最长子串的长度maxLength。
下面是一个使用JavaScript实现滑动窗口算法解决最长无重复字符子串问题的框架代码:
function lengthOfLongestSubstring(s) { let maxLength = 0; let left = 0; let right = 0; let set = new Set(); while (right < s.length) { if (!set.has(s[right])) { set.add(s[right]); maxLength = Math.max(maxLength, right - left + 1); right++; } else { set.delete(s[left]); left++; } } return maxLength; }
在这个框架中,我们使用了left和right两个指针来构建窗口,set集合用于存储窗口内的字符。我们不断地向右移动right指针,如果遇到重复字符,则移动left指针来缩小窗口。在每次移动right指针时,都会更新最长子串的长度maxLength。最后,我们返回最长子串的长度作为结果。
The text was updated successfully, but these errors were encountered:
No branches or pull requests
无重复字符的最长子串
给定一个字符串
s
,请你找出其中不含有重复字符的最长子串的长度。问题分析:
这个问题可以通过滑动窗口算法来解决。我们可以使用两个指针,即
left
和right
,来构建和维护一个窗口,确保窗口内的字符不重复。通过不断地移动指针,我们可以找到最长的不含重复字符的子串。解题步骤:
初始化两个指针
left
和right
,并初始化最长子串的长度maxLength
为0。创建一个哈希集合(或者字符数组)
set
来存储窗口内的字符。哈希集合可以快速判断字符是否出现过。使用
right
指针向右移动,扩大窗口。在每次移动时,检查当前字符是否已经在哈希集合中。maxLength
为当前窗口的大小(right - left + 1
)。left
指针,并将left
指针对应的字符从集合中删除,以缩小窗口。重复步骤3,直到
right
指针达到字符串的末尾。返回最长子串的长度
maxLength
。JavaScript解题框架:
下面是一个使用JavaScript实现滑动窗口算法解决最长无重复字符子串问题的框架代码:
在这个框架中,我们使用了
left
和right
两个指针来构建窗口,set
集合用于存储窗口内的字符。我们不断地向右移动right
指针,如果遇到重复字符,则移动left
指针来缩小窗口。在每次移动right
指针时,都会更新最长子串的长度maxLength
。最后,我们返回最长子串的长度作为结果。The text was updated successfully, but these errors were encountered: