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

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

LeetCode 5. Longest Palindromic Substring

2019-11-09 19:21:53
字體:
供稿:網(wǎng)友

經(jīng)典求最長回文子串問題 可以 - 暴力(O(N^3)) - DP(O(N^2)) 不過本文采用 Manacher’s Algorithm 具體參考 https://www.felix021.com/blog/read.php?2040 寫得非常好,非常好理解,我就不復(fù)述了,實(shí)際上很多字符串處理算法的核心就是用了之前計(jì)算過的結(jié)果,構(gòu)造一個(gè)不等式來減少計(jì)算量

class Solution {public: string longestPalindrome(string s2) { string s = "$#"; for (char ch : s2) s = s + ch + '#'; int n = s.size(); int p[n] = {0}; int mx = 0, id = 0; for (int i = 0; i < n; i++) { p[i] = mx > i ? min(p[2 * id - i], mx - i) : 1; while (s[i + p[i]] == s[i - p[i]]) p[i]++; if (i + p[i] > mx) { mx = i + p[i]; id = i; } } int maxId = 0; for (int i = 1; i < n; i++) if (p[i] > p[maxId]) maxId = i; string ans; for (int i = maxId - p[maxId] + 1; i <= maxId + p[maxId] - 1; i++) if (s[i] != '#') ans += s[i]; return ans; }};
上一篇:MD5

下一篇:ROS_movieIt入門總結(jié)

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 瓦房店市| 出国| 东安县| 万载县| 呈贡县| 堆龙德庆县| 阿巴嘎旗| 胶南市| 穆棱市| 阳东县| 无棣县| 翁牛特旗| 仁寿县| 沙雅县| 永康市| 香港| 三门峡市| 江口县| 平定县| 谢通门县| 雷州市| 酒泉市| 日照市| 清丰县| 浦城县| 板桥市| 呼伦贝尔市| 莫力| 曲靖市| 南岸区| 贵南县| 安吉县| 沧州市| 麟游县| 体育| 杭州市| 牡丹江市| 衡阳县| 盱眙县| 资溪县| 乌兰浩特市|