1 #include"iostream" 2 #include"algorithm" 3 using namespace std; 4 5 6 class Solution 7 { 8 public: 9 int lengthOfLongestSubstring(string s) 10 { 11 //s[start,end) 前面包含 后面不包含 12 int start(0), end(0), length(0), result(0); 13 int sSize = int(s.size()); 14 while (end < sSize) 15 { 16 char tmpChar = s[end]; 17 for (int index = start; index < end; index++) 18 { 19 if (tmpChar == s[index]) 20 { 21 start = index + 1; 22 length = end - start; 23 break; 24 } 25 } 26 end++; 27 length++; 28 result = max(result, length); 29 } 30 return result; 31 } 32 }; 33 34 //class Solution { 35 //public: 36 // int lengthOfLongestSubstring(string s) { 37 // int begin = 0; //窗口指针,数组下标 38 // int result = 0; 39 // string word = ""; 40 // int char_map[128] = { 0 }; 41 // for (int i = 0; i < s.length(); i++) { 42 // char_map[s[i]]++; 43 // if (char_map[s[i]] == 1) { 44 // word = word + s[i]; 45 // if (result < word.length()) { 46 // result = word.length(); 47 // } 48 // } 49 // else 50 // { 51 // while (begin < i && char_map[s[i]]>1) { 52 // char_map[s[begin]]--; 53 // begin++; 54 // } 55 // word = ""; 56 // for (int j = begin; j <= i; j++) { 57 // word = word + s[j]; 58 // } 59 // } 60 // } 61 // return result; 62 // } 63 //}; 64 65 //测试 66 int main() 67 { 68 string s = "pwwkew"; 69 Solution s1; 70 int i = s1.lengthOfLongestSubstring(s); 71 cout << i << endl; 72 system("pause"); 73 return 0; 74 }
原文:https://www.cnblogs.com/ccllcc/p/12572129.html