5. Longest Palindromic Substring
2016-06-22 11:31
239 查看
<pre style="box-sizing: border-box; overflow: auto; font-family: Menlo, Monaco, Consolas, 'Courier New', monospace; font-size: 13px; padding: 9.5px; margin-top: 0px; margin-bottom: 10px; line-height: 1.42857; color: rgb(51, 51, 51); word-break: break-all; word-wrap: break-word; border: 1px solid rgb(204, 204, 204); border-top-left-radius: 4px; border-top-right-radius: 4px; border-bottom-right-radius: 4px; border-bottom-left-radius: 4px; font-variant-ligatures: normal; font-variant-position: normal; font-variant-numeric: normal; font-variant-alternates: normal; font-variant-east-asian: normal; widows: 1; background-color: rgb(245, 245, 245);">还有一种遍历中心的方法时间复杂度也为n方,还有一种为n的方法
class Solution { public: string longestPalindrome(string s) { int length = s.length(); if(length == 0 || length == 1) return s; vector<vector<int>> dp(length+5,vector<int>(length+5,0)); dp[length-1][length-1]=1; int start = 0,max = 0; for(int i=0;i<length-1;i++){ dp[i][i]=1; if(s[i]==s[i+1]) { dp[i][i+1]=1; start = i; max = 2; } } for(int j=2;j<length;j++){ for(int i=0;i<=j;i++){ if(s[i]==s[j]&&dp[i+1][j-1]){ if(j-i+1>max){ start = i; max = j-i+1; } dp[i][j]=1; } } } for(int i=0;i<length;i++){ for(int j=0;j<length;j++) cout<<dp[i][j]; cout<<endl; } return s.substr(start,max); } };
"abaas"
10100 01000 00110 00010 00001
相关文章推荐
- Openstack 环境准备
- 如何不将iphone上面的数字识别为电话
- java.lang.instrument 学习(一)
- Spring4.2.6 ApplicationContext
- IOS开发中,SVN如何恢复到某一个版本(以Cornerstone为例)
- centos6.5上部署集中化管理平台Saltstack!!!
- 代码的远程托管(OSChina与SourceTree)
- vs2015破解流程
- 脑网络组图谱(Brainnetome Atlas
- spring属性占位符
- jquery里用each遍历的值存到数组和字符串
- C# button 去边框
- PL/SQL 存储过程调试不能进行单步问题
- linux shell脚本读取用户输入的参数
- HTML5 Canvas中 瞎鼓捣
- 图像处理与计算机视觉基础,经典以及最近发展
- Xcode技巧:项目导入外部文件后编译运行出现Undefined symbols for architecture x86_64错误
- Mac 远程连接 异地 Mac 电脑
- 获取RSA文件的MD5和SHA1
- C++ 输入字符串和string 类型总结