leetcode Longest Substring Without Repeating Characters
阿新 • • 發佈:2019-02-15
思路:
定義變數:exist[256]={false},表示字元沒有出現過,當exist[s[j]]=true時表示字元已經出現過;定義i和j,初始時i表示字串的起始,j持續增大,同時exist[s[j]]=true,當發現s[j]已經出現過,那麼移動i,知道s[i]=s[j],並把之前的exist[s[i]]變為false
class Solution { public: int lengthOfLongestSubstring(string s) { int length=s.size(); int maxlen=0; int i=0,j=0; bool exist[256]={false}; for(;j<length;j++) { if(exist[s[j]]) { maxlen=max(maxlen,j-i); while(i<j) { if(s[i]!=s[j]) exist[s[i]]=false; else break; i++; } i++; } else { exist[s[j]]=true; } } maxlen=max(maxlen,length-i); return maxlen; } };