[LeetCode]Longest Substring Without Repeating Characters
2013-10-08 14:51
239 查看
此题用一个hash table保存每个字符上一次出现过的位置。从前往后扫描,假如发现字符上次出现过,就把当前子串的起始位置start移动到上次出现过的位置之后——这是为了保证从start到i的当前子串中没有任何重复字符。同时,由于start移动,当前子串的内容改变,start移动过程中经历的字符都要剔除。
class Solution { public: int lengthOfLongestSubstring(string s) { int start = 0; // current start point of substring without dup int maxlen = 0; // max length of substring found int table[256]; // hash table for index of each char appeared for (int i = 0;i < 256;i++) table[i] = -1; // if char not present, index is -1 for (int i = 0;i < s.length();i++) { if (table[s[i]] != -1) { while (start <= table[s[i]]) table[s[start++]] = -1; } if (i - start + 1 > maxlen) maxlen = i - start + 1; table[s[i]] = i; } return maxlen; } };
相关文章推荐
- 【leetcode】Longest Substring Without Repeating Characters
- leetcode3: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 Repeating Characters解题报告
- leetcode:Longest Substring Without Repeating Characters
- Longest Substring Without Repeating Characters - Leetcode
- Leetcode 3 Longest Substring Without Repeating Characters
- LeetCode 3-Longest Substring Without Repeating Characters
- leetcode: Longest Substring Without Repeating Characters
- [LeetCode]-algorithms-Longest Substring Without Repeating Characters
- [leetcode] Longest Substring Without Repeating Characters
- 【leetcode with java】3 Longest Substring Without Repeating Characters
- LeetCode 3 Longest Substring Without Repeating Characters
- LeetCode题解 C++ Longest Substring Without Repeating Characters
- LeetCode Longest Substring Without Repeating Characters
- [LeetCode] Longest Substring Without Repeating Characters
- Leetcode: Longest Substring Without Repeating Characters
- leetcode - Longest Substring Without Repeating Characters