最长回文子串

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

    int expandFromCenter(string s,int left,int right){
        while(left>=0 && right<s.length() && s[left]==s[right]){
            --left;
            ++right;
        }
        return right-left+1-2;
    }
    string longestPalindrome(string s) {
        int length=0,maxLength=0;
        int maxIndex=0;
        for(int i=0;i<s.length();++i){
            int length1=expandFromCenter(s,i,i);
            int length2=expandFromCenter(s,i,i+1);
            length=max(length1,length2);
            if(length>maxLength){
                maxLength=length;
                maxIndex=i;
            }
        }
        return s.substr(maxIndex-(maxLength-1)/2,maxLength);
    }

 

上一篇:死磕 java同步系列之ReentrantLock源码解析(二)——条件锁


下一篇:Input type = 'number' 和maxlength不能一起用