LeetCode-5 最长回文子串

  • C++ 
class Solution {
public:
    string longestPalindrome(string s) {
        int length = s.length();
        int longset = 1;
        int index = 0;
        int right = 1;
        int left = 1;
        for(int i=0;i<length;i++){
             right = 1;
             left = 1;
             while((i+right)<length){
                if(s[i]==s[i+right]){
                    right++;
                }else{
                    break;
                }
            }
            while((i-left)>=0){
                if(s[i]==s[i-left]){
                    left++;
                }else{
                    break;
                }
            }
            while((i+right)<length && (i-left)>=0){
                if(s[i+right]==s[i-left]){
                    right++;
                    left++;
                }else{
                    break;
                }
            }
            if(right+left-1 > longset){
                index = i-left+1;
                longset = right+left-1;
            }
        }
        return s.substr(index, longset);
    }
};

猜你喜欢

转载自blog.csdn.net/lolimostlovely/article/details/82945306