手撕代码:最大连续子串
1 #include <iostream> 2 #include <string> 3 using namespace std; 4 string findLongestSubStr(string & str) 5 { 6 int n=(int)str.size(); 7 if(n==0) 8 return 0; 9 int *f=new int[n]; 10 f[0]=1; 11 int Max=1; 12 int idex=0; 13 int jdex=0; 14 int tempi=0; 15 int tempj=0; 16 for (int i = 1; i <n; ++i) { 17 if(str[i]-str[i-1]==1) 18 { 19 f[i]=f[i-1]+1; 20 tempj=i; 21 if(f[i]>Max) 22 { 23 Max=f[i]; 24 idex=tempi; 25 jdex=tempj; 26 } 27 28 }else 29 { 30 f[i]=1; 31 tempi=i; 32 } 33 34 } 35 return str.substr(idex,jdex-idex+1); 36 } 37 int main() 38 { 39 string str; 40 cin>>str; 41 cout<<findLongestSubStr(str)<<endl; 42 return 0; 43 }