leetcode-Longest Substring Without Repeating Characters
2017-07-28 10:01
471 查看
c++版本
class Solution {
public:
int lengthOfLongestSubstring(string s)
{
int left = 0, right = 0;
int exist[300] = {0};
int ans = 0;
int len = s.length();
for(;right < len; right++)
{
if(exist[s[right]])
{
for(int i = left; i < right; i++)
{
if(s[i] == s[right])
{
left = i+1;
break;
}
}
}
ans = max(ans,right - left + 1);
exist[s[right]] = 1;
}
return ans;
}
};
思路:
使用滑动窗口:
定义左右两端指针left、right;
定义标记某字符是否出现过的数组;
定义最长非重复子字符串长度为ans,初始为零;
两边指针均从第0位开始,先滑动右侧;
判断右侧指针指向的字符是否出现过;
若出现过,从left到right-1之间寻找出现过该字符的位置,假定该位置为i,则将left移到i+1;
当前的非重复子字符串长度为right-left+1;
将该长度与当前ans值作比较,保存最大值;
将当前right位置上的字符标记已出现过,继续移动right。
class Solution {
public:
int lengthOfLongestSubstring(string s)
{
int left = 0, right = 0;
int exist[300] = {0};
int ans = 0;
int len = s.length();
for(;right < len; right++)
{
if(exist[s[right]])
{
for(int i = left; i < right; i++)
{
if(s[i] == s[right])
{
left = i+1;
break;
}
}
}
ans = max(ans,right - left + 1);
exist[s[right]] = 1;
}
return ans;
}
};
思路:
使用滑动窗口:
定义左右两端指针left、right;
定义标记某字符是否出现过的数组;
定义最长非重复子字符串长度为ans,初始为零;
两边指针均从第0位开始,先滑动右侧;
判断右侧指针指向的字符是否出现过;
若出现过,从left到right-1之间寻找出现过该字符的位置,假定该位置为i,则将left移到i+1;
当前的非重复子字符串长度为right-left+1;
将该长度与当前ans值作比较,保存最大值;
将当前right位置上的字符标记已出现过,继续移动right。
相关文章推荐
- 【LeetCode】Longest Substring Without Repeating Characters
- LeetCode 3 — Longest Substring Without Repeating Characters (C++ Java Python)
- LeetCode week 2 : Longest Substring Without Repeating Characters
- LeetCode Longest Substring Without Repeating Characters
- 3_Longest Substring Without Repeating Characters -- LeetCode
- leetcode Longest Substring Without Repeating Characters
- LeetCode OJ Longest Substring Without Repeating Characters
- [LeetCode]题解(python):003-Longest Substring Without Repeating Characters
- LeetCode 3: Longest Substring Without Repeating Characters
- [leetcode] Longest Substring Without Repeating Characters
- leetcode刷题:Longest Substring Without Repeating Characters
- [leetcode]Longest Substring Without RepeatingCharacters
- leetcode-3 Longest Substring Without Repeating Characters
- 【leetcode】Longest Substring Without Repeating Characters
- Leetcode第三题_Longest Substring Without Repeating Characters
- LeetCode3——Longest Substring Without Repeating Characters
- 【leetcode】LongestSubstringWithoutRepeatingCharacters
- 【转载】【leetcode】Longest Substring Without Repeating Characters
- LeetCode-Longest Substring Without Repeating Characters<ERROR>
- leetcode Longest Substring Without Repeating Characters