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

首頁(yè) > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

5. Longest Palindromic Substring Medium

2019-11-06 07:24:49
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

最長(zhǎng)回文子串的求解,主要有這四種方法:

1.暴力求解

羅列所以可能的子串,一一判斷是否是回文。 O(n^3)

2.動(dòng)態(tài)規(guī)劃

回文字符串的子串也是回文,比如P[i,j](表示以i開始以j結(jié)束的子串)是回文字符串,那么P[i+1,j-1]也是回文字符串。這樣最長(zhǎng)回文子串就能分解成一系列子問(wèn)題了。這樣需要額外的空間O(N^2),算法復(fù)雜度也是O(N^2)。

(這是抄的)

3.中心擴(kuò)展

以每一個(gè)字符做中心向兩邊擴(kuò)展,分奇數(shù)個(gè)字符和偶數(shù)個(gè)字符兩種情況

4.Manacher法

這里用第三種 比較好實(shí)現(xiàn)

class Solution {public:    string longestPalindrome(string s) {    int size = s.size();    int max = 0, start = 0;    //odd    for (int i = 0; i < size; ++i)    {    int count = 0, len = 0;    while(i - count >= 0 && i + count < size){    if(s[i - count] == s[i + count]){    len = 2 * count + 1;    count++;    }    else break;    }    if(len > max){ max = len; start = i - count + 1; }    }    //cout << max << " " << start << endl;    //even    //cout << "~~" << endl;    for (int i = 0; i < size; ++i)    {    int left = i, right = i + 1, count = 0, len = 0;    while(left - count >= 0 && right + count < size){    if(s[left - count] == s[right + count]){    len = 2 * count + 2;    count++;    }    else break;    }    if(len > max){ max = len; start = i - count + 1; }    }    //cout << max << " " << start << endl;    string ans = s.substr(start, max);    return ans;    }};


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 鸡泽县| 久治县| 都昌县| 榆树市| 淳化县| 荆门市| 尼木县| 西藏| 张家川| 诏安县| 卢湾区| 五河县| 平舆县| 曲靖市| 中山市| 叶城县| 平南县| 昂仁县| 湘乡市| 介休市| 平昌县| 南陵县| 盐源县| 陵川县| 冕宁县| 洛隆县| 农安县| 临沭县| 杂多县| 忻州市| 象山县| 芦山县| 乌恰县| 河北省| 南投县| 江口县| 乾安县| 南木林县| 台安县| 雅江县| 普格县|