题目
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without
repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
解答
这个题并没有太多复杂之处,主要就是考虑正确的实现算法。
class Solution {
public:
int lengthOfLongestSubstring(string s) {
int maxlen = 0;
for (int i = 0, j = 0; i < s.length();)
{
if (++j == s.length() )
{
maxlen = max(maxlen, j - i);
break;
}
for (int k = i; k < j; k++)
{
if (s[k] == s[j])
{
maxlen = max(maxlen, j - i);
i = k + 1;
break;
}
}
}
return maxlen;
}
};
public:
int lengthOfLongestSubstring(string s) {
int maxlen = 0;
for (int i = 0, j = 0; i < s.length();)
{
if (++j == s.length() )
{
maxlen = max(maxlen, j - i);
break;
}
for (int k = i; k < j; k++)
{
if (s[k] == s[j])
{
maxlen = max(maxlen, j - i);
i = k + 1;
break;
}
}
}
return maxlen;
}
};
最长无重复子串算法
本文介绍了一种寻找字符串中最长无重复字符子串的算法实现。通过双指针技术,该方法能在O(n)的时间复杂度内找到给定字符串中最长的不包含重复字符的子串,并返回其长度。
678

被折叠的 条评论
为什么被折叠?



