标签:破坏 art break character insert amp str sequence solution
class Solution { public: int lengthOfLongestSubstring(string s) { int maxLength=0,curLength=0; set<char> dict; for(int i=0;i<s.size();++i){ curLength=0; for(int j=i;j<s.size();++j){ if(dict.find(s[j])!=dict.end()){ //在set查找当前值是否出现过 break; } else{ ++curLength; //子串当前长度 dict.insert(s[j]); //没有出现就插入到set中 } } if(curLength>maxLength)maxLength=curLength; dict.clear(); } return maxLength; } };
思路二:
class Solution { public: int lengthOfLongestSubstring(string s) { vector<int> dict(256,-1); //每个出现的字符位置 int maxLength=0,start=-1; for(int i=0;i<s.size();++i){ if(dict[s[i]]>start){ //如果当前字符位置大于start,说明当前这个子串遇到了这个字符两次 start=dict[s[i]]; //那么start就移动到在这个子串中这个字符第一次出现的位置 作为寻找下一个子串的起点 } dict[s[i]]=i; //更新当前字符的位置 maxLength=max(maxLength,i-start); //长度出现较大值 更新它 } return maxLength; } };
[LeetCode]3. Longest Substring Without Repeating Characters
标签:破坏 art break character insert amp str sequence solution
原文地址:http://www.cnblogs.com/captzx/p/7092402.html