博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5. 最长回文子串
阅读量:6995 次
发布时间:2019-06-27

本文共 997 字,大约阅读时间需要 3 分钟。

给定一个字符串 s,找到 s 中最长的回文子串。你可以假设 s 的最大长度为 1000。

示例 1:

输入: "babad"输出: "bab"注意: "aba" 也是一个有效答案。

示例 2:

输入: "cbbd"输出: "bb"
string longestPalindrome(string s) {      if (s.empty()) return "";      int len = s.size();int longest = 1;      int start = 0;      vector
> dp(len, vector
(len)); for (int i = 0; i < len; i++) { dp[i][i] = 1; if (i < len - 1) { if (s[i] == s[i + 1]) { dp[i][i + 1] = 1; start = i; longest = 2; } } } for (int k = 3; k<=len ;k++)//字串長度 for (int i = 0; i < len - k+1; i++) { int j = i+k-1; if (s[i] == s[j] && dp[i + 1][j - 1] == 1) { dp[i][j] = 1; start = i; longest = k; } } return s.substr(start, longest);//返回字串(起始位置,長度) }

 

转载于:https://www.cnblogs.com/binanry/p/10079668.html

你可能感兴趣的文章