LeetCode Longest Palindromic Substring

来源:互联网 发布:手机防锁机软件 编辑:程序博客网 时间:2024/06/08 15:28

一、试题

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) {    pair<int,int> pos;    int max=0;    for(int i=0; i<s.size(); i++){        int st=i,en=i;        while(s[st]==s[en] && st>=0 && en<s.size()){            st--,en++;        }        if(en-st-1>max){            max = en-st-1;            pos = make_pair(st+1,en);        }        if(i+1<s.size() && s[i]==s[i+1]){            int st=i,en=i+1;            while(s[st]==s[en] && st>=0 && en<s.size()){                st--,en++;            }            if(en-st-1>max){                max = en-st-1;                pos = make_pair(st+1,en);            }                   }    }    cout<<pos.first<<pos.second;    return s.substr(pos.first,pos.second-pos.first);      }};
原创粉丝点击