博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
5. Longest Palindromic Substring
阅读量:7126 次
发布时间:2019-06-28

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

5. Longest Palindromic Substring

题目

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_5 {public:    // reverse(res.begin(),res.end());    // return s == string(s.rbegin(), s.rend());    bool isPalindrome(string s)    {        return s ==string(s.rbegin(),s.rend());    }    // 处理bb和aba的情况    string expandstring(const string s,int l,int r)    {        while(l >= 0&&r
longestr.size()) { longestr = expand; } string expand2 = expandstring(s,i,i+1); if (expand2.length()>longestr.length()) { longestr = expand2; } } return longestr; }};string longestPalindromeDP(string s) { int n = s.length(); int longestBegin = 0; int maxLen = 1; bool table[1000][1000] = {false}; for (int i = 0; i < n; i++) { table[i][i] = true; } for (int i = 0; i < n-1; i++) { if (s[i] == s[i+1]) { table[i][i+1] = true; longestBegin = i; maxLen = 2; } } for (int len = 3; len <= n; len++) { //对每个长度拓展查看 for (int i = 0; i < n-len+1; i++) { int j = i+len-1; if (s[i] == s[j] && table[i+1][j-1]) { table[i][j] = true; longestBegin = i; maxLen = len; } } } return s.substr(longestBegin, maxLen);}

题目来源

转载地址:http://yhhel.baihongyu.com/

你可能感兴趣的文章
Walking On My Way
查看>>
struts2拦截器的实现原理及源码剖析
查看>>
[BZOJ4719][P1600][NOIP2016]天天爱跑步[LCA+dfs序+差分]
查看>>
System V 消息队列
查看>>
Python 邮件类
查看>>
空中飘动的云动画
查看>>
在页面上显示服务器端的字体
查看>>
Oracle分页查询=======之伪列的使用
查看>>
Linode安装SSL
查看>>
install WEBLOGIC
查看>>
我的友情链接
查看>>
《C++ 沉思录》阅读笔记——类的反思
查看>>
linux中常用快捷键
查看>>
移动互联网发展
查看>>
结对-贪吃蛇游戏-开发环境搭建过程
查看>>
bzoj 1833: [ZJOI2010]count 数字计数
查看>>
PHP中spl_autoload_register()函数的用法
查看>>
Vulnerability Assessment
查看>>
SuperMap Object 基本编程
查看>>
HBase之Memstore刷写
查看>>