Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- string longestPalin (string S) {
- int min_i=0, max_j=0, N = S.length();
- for (int i=0; i<N; i++) {
- int p1 = i, p2 = i+1;
- while (p1>=0 && p2<N && S[p1]==S[p2]) {
- if (p2-p1 > max_j-min_i){
- max_j = p2;
- min_i = p1;
- }
- p1--;
- p2++;
- }
- }
- for (int i=1; i<N-1; i++) {
- int j=1;
- while(i-j>=0 && i+j<N && S[i+j]==S[i-j]) {
- if ( (i+j)-(i-j) > (max_j-min_i) ) {
- max_j = i+j;
- min_i = i-j;
- }
- j++;
- }
- }
- return S.substr(min_i, max_j-min_i+1);
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement