Advertisement
rotti321

Secventa maximala palindromica

Jun 4th, 2021
654
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2. #include <cstring>
  3.  
  4. using namespace std;
  5.  
  6. int main()
  7. {
  8.     char s[101];
  9.     cin.getline(s, 101);
  10.     int start = 0, lmax = 1, lung, i1, i2, n = strlen(s);
  11.     for( int i = 1; i < n; i++ ){
  12.         i1 = i-1;
  13.         i2 = i+1;
  14.         while( i1 >= 0 && i2 < n && s[i1] == s[i2] ){
  15.             if( lmax <= i2 - i1 + 1 ){
  16.                 lmax = i2 - i1 + 1;
  17.                 start = i1;
  18.             }
  19.             i2++;
  20.             i1--;
  21.         }
  22.         i1 = i-1;
  23.         i2 = i;
  24.         while( i1 >= 0 && i2 < n && s[i1] == s[i2] ){
  25.             if( lmax <= i2 - i1 + 1 ){
  26.                 lmax = i2 - i1 + 1;
  27.                 start = i1;
  28.             }
  29.             i2++;
  30.             i1--;
  31.         }
  32.     }   // stop - start + 1 = lmax
  33.     for( int i = start; i <= lmax+start-1; i++ ){
  34.         cout << s[i];
  35.     }
  36. }
  37.    
  38.  
Advertisement
RAW Paste Data Copied
Advertisement