标签:
Given a string, find the length of the longest substring without repeating characters. For example, the longest substring without repeating letters for "abcabcbb" is "abc", which the length is 3. For "bbbbb" the longest substring is "b", with the length of 1.
1 class Solution { 2 public: 3 int lengthOfLongestSubstring(string s) { 4 5 map<char,int> char2index; 6 7 int start_index=0; 8 int result=0; 9 int i; 10 for(i=0;i<s.length();i++) 11 { 12 //从来没有出现过的元素 13 if(char2index.find(s[i])==char2index.end()) 14 { 15 char2index[s[i]]=i; 16 } 17 else 18 { 19 //出现过,且在start_index之后出现 20 if(char2index[s[i]]>=start_index) 21 { 22 result=max(result,i-start_index); 23 start_index=char2index[s[i]]+1; 24 char2index[s[i]]=i; 25 } 26 else 27 { 28 //在start_index之前出现 29 char2index[s[i]]=i; 30 } 31 32 } 33 } 34 result=max(result,i-start_index); 35 36 return result; 37 } 38 };
1 class Solution { 2 public: 3 int lengthOfLongestSubstring(string s) { 4 5 map<char,int> char2index; 6 7 int start_index=0; 8 int result=0; 9 int i; 10 for(i=0;i<s.length();i++) 11 { 12 if(char2index.find(s[i])!=char2index.end()&&char2index[s[i]]>=start_index) 13 { 14 result=max(result,i-start_index); 15 start_index=char2index[s[i]]+1; 16 } 17 char2index[s[i]]=i; 18 } 19 20 result=max(result,i-start_index); 21 22 return result; 23 } 24 };
【leetcode】Longest Substring Without Repeating Characters
标签:
原文地址:http://www.cnblogs.com/reachteam/p/4251659.html