leetcode 第5題回數


1.題目描述

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"
 

2.分析:

給一個字符串,求回數,即正反讀都相同.求出這個子集在字符串中的最大值.


3.解決:

class Solution {public:    string longestPalindrome(string s) {         if(s.length() <= 1)            return s;        size_t start = 0, len =0;        for(size_t i =0; i<s.length() && s.length() - i >len/2;)    //進行裁剪,如果當前剩余長度小於當前最長不進行    {             size_t left = i, right;            for(right = i+1; right < s.length() && s[right]== s[right-1];)    //對於重復的字符進行自增的操作            right++;            for(i = right--; left >0 && right < s.length()-1 && s[left-1] == s[right+1];)    //相等則向兩邊衍生        {                right++;                left--;            }            int clen = right - left + 1;                                    //判斷當前長度        if(clen > len)            {                len = clen;                start = left;            }        }         return s.substr(start,len);        }};



注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
粤ICP备14056181号  © 2014-2021 ITdaan.com