LettCode

来源:互联网 发布:域名中cn代表什么 编辑:程序博客网 时间:2024/06/05 18:40

Given a string s, find the longest palindromic substring in s. You may assume that the maximum length of s is 1000.

Example:

Input: "babad"Output: "bab"Note: "aba" is also a valid answer.

Example:

Input: "cbbd"Output: "bb"

终学最长回文子串,接触ACM就开始听这个,到现在才懂,叹气。。。

讲道理,solution区的人怎么都这么6

class Solution {public:    string longestPalindrome(string s) {        int ans = 0;  //最终长度        int st = 0;  //开始位置        for (int i = 0; i < s.size(); ) {            if (s.size() - i < ans / 2) break;            int j = i, k = i;            while (k < s.size() - 1 && s[k+1] == s[k]) k++;   //这两个while真真精髓啊            i = k + 1;            while (k < s.size() && j > 0 && s[k+1] == s[j-1]) k++, j--;            int cnt = k - j + 1;            if (cnt > ans) {                ans = cnt;                st = j;            }        }        return s.substr(st, ans);    }};

原创粉丝点击