LeetCode刷题-003无重复字符的最长子串

最长子串 的长度。
给定一个字符串,找出不含有重复字符的
示例:
给定 "abcabcbb" ,没有重复字符的最长子串是 "abc" ,那么长度就是3。
给定 "bbbbb" ,最长的子串就是 "b" ,长度是1。
子串 , "pwke" 是 子序列 而不是子串。
给定 "pwwkew" ,最长子串是 "wke" ,长度是3。请注意答案必须是一个

 1 class Solution {
 2 public:
 3     int lengthOfLongestSubstring(string s) {
 4     int ret = 0;
 5     map<char, int> m;
 6     int start = 1;
 7     for (int i = 1; i <= s.length(); i++)
 8     {
 9     char c = s[i ‐ 1];
10     if (m[c] >= start)
11     {
12         start = m[c] + 1;
13         m[c] = i;
14     }
15     else
16     {
17         m[c] = i;
18         ret = max(ret, i ‐ start + 1);
19     }
20     }
21     return ret;
22     }
23 };

猜你喜欢

转载自www.cnblogs.com/nkqlhqc/p/9085316.html