LeetCode之Longest Palindromic Substring

来源:互联网 发布:淘宝代金券最多 编辑:程序博客网 时间:2024/06/07 02:12
/*暴力法:以每个元素为中心,左右扩展,找到以其为中心的最大回文串*/class Solution {public:    string longestPalindrome(string s) {        if(s.size() < 2) return s;//字符串数小于2,都为回文串        int count(-1);        int left, right;        for(int i = 0; i < s.size(); ++i){            int l, r;            //1.以s[i]为中心,左右展开            l = i - 1; r = i + 1;            while(l >= 0 && r < s.size() && s[l] == s[r]){                --l;                ++r;            }            ++l;            --r;            if(count < r-l+1){                count = r-l+1;                left = l;                right = r;            }            //2.以s[i]以及s[i]后面的元素作为中心,左右展开            l = i; r = i + 1;            while(l >= 0 && r < s.size() && s[l] == s[r]){                --l;                ++r;            }            ++l;            --r;            if(count < r-l+1){                count = r-l+1;                left = l;                right = r;            }        }        return s.substr(left, right - left + 1);    }};

0 0