5. Longest Palindromic Substring

来源:互联网 发布:淘宝如何开通微淘 编辑:程序博客网 时间:2024/06/02 02:16

水题,注意时间复杂度不要超过O(n^2)。


class Solution {    public:        string longestPalindrome(string s) {            string ans;            int ans_length = 0;            int length = s.length();             for (int center = 0; center < length; center++) {                // 奇数                int head = center;                int tail = center;                int tmp_ans_length = 0;                while(head >= 0 && tail < length && s[head] == s[tail]) {                    if (head == tail) {                        tmp_ans_length += 1;                    } else {                        tmp_ans_length += 2;                    }                       head--;                    tail++;                }                   if (tmp_ans_length >= ans_length) {                    ans_length = tmp_ans_length;                    ans = s.substr(head+1, (tail-1) - (head+1) + 1);                 }                    // 偶数                head = center;                tail = center+1;                tmp_ans_length = 0;                while(head >= 0 && tail < length && s[head] == s[tail]) {                    tmp_ans_length += 2;                    head--;                    tail++;                }                   if (tmp_ans_length >= ans_length) {                    ans_length = tmp_ans_length;                    ans = s.substr(head+1, (tail-1) - (head+1) + 1);                 }               }                 return ans;        }   };


原创粉丝点击