国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

5. Longest Palindromic Substring

2019-11-06 07:24:27
字體:
來源:轉載
供稿:網友
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 0; int start_pos = 0, max_len = 1; //start_pos default 0 because max_len default 1 const int len = s.length(); for(int i=0; i<len-1; ++i){ extend_palindrome(s, len, i, i, start_pos, max_len); //assume odd length, try to extend palindrome as possible extend_palindrome(s, len, i, i+1, start_pos, max_len); //assume even length } return s.substr(start_pos, max_len); } void extend_palindrome(string& s, int len, int left, int right, int& start_pos, int& max_len){ while(left >= 0 && right < len && s[left] == s[right]){ --left; ++right; } if(max_len < right-left-1){ start_pos = left + 1; max_len = right - left - 1; } }};

為什么要有兩種情況呢:比如abba和abab分別就是和偶數個最長和奇數個最長的情況。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 左云县| 彭水| 象山县| 长兴县| 湖口县| 海丰县| 玛纳斯县| 施秉县| 中方县| 乌拉特后旗| 长沙县| 紫阳县| 黄大仙区| 行唐县| 措美县| 蕉岭县| 永泰县| 台湾省| 蕲春县| 翼城县| 醴陵市| 沙洋县| 类乌齐县| 绥棱县| 肇庆市| 兴宁市| 抚州市| 富阳市| 赣州市| 岳普湖县| 安泽县| 永年县| 山丹县| 丰都县| 钟山县| 金寨县| 登封市| 耒阳市| 庆安县| 镇宁| 新津县|