LeetCode-5*(回文)

来源:互联网 发布:秦始皇陵知乎 编辑:程序博客网 时间:2024/05/16 11:13
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"

class Solution {public:    string longestPalindrome(string s) {        if(s.empty())  return "";  //空串        if(s.size() == 1)  return s;  //单字符串        int start = 0, len = 1;  //回文子串开始,长度        for(int i = 0;i<s.size();){            if(s.size()-i <= len/2)  break;            int j = i, k = i;            while(k<s.size()-1 && s[k] == s[k+1])  k++;  //掠过重复字符            i = k+1;   //i存储回文子串对称轴心,如有重复字符的话,指向重复字符的后一个
    while(k<s.size()-1 && j>0 && s[k+1]==s[j-1])  { k++;  j--; }            int newlen=k-j+1;            if(newlen>len){                len = newlen;                start = j;            }        }        return s.substr(start,len);    }};


Subscribe to see which companies asked this question.



0 0
原创粉丝点击