题目:
Given a string, find the length of the longest substring without repeating characters.
Examples:
Given "abcabcbb"
, the answer is "abc"
, which the length is 3.
Given "bbbbb"
, the answer is "b"
, with the length of 1.
Given "pwwkew"
, the answer is "wke"
, with the length of 3. Note that the answer must be a substring, "pwke"
is a subsequence and not a substring.
分类:Hash Table Two Pointers String
代码:
1 class Solution { 2 public: 3 int lengthOfLongestSubstring(string s) { 4 map<char,int> hash; 5 int start = -1; 6 int maxLength = 0; 7 for(int i = 0; i < s.size(); ++i) 8 { 9 if(hash.count(s[i]) != 0) 10 { 11 start = max(start,hash[s[i]]); 12 } 13 hash[s[i]] = i; 14 maxLength = max(maxLength,i-start); 15 } 16 return maxLength; 17 } 18 };