leetcode5 Longest Palindromic Substring
2015-10-11 19:52
357 查看
<span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; line-height: 26px;">Longest Palindromic Substring</span>
<span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; line-height: 26px;"><span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">Given a string </span><span style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">S</span><span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">, find the longest palindromic substring in </span><span style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">S</span><span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">. You may assume that the maximum length of </span><span style="box-sizing: border-box; color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;">S</span><span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;"> is 1000, and there exists one unique longest palindromic substring.</span> </span>
<span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 24px; line-height: 26px;"><span style="color: rgb(51, 51, 51); font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif; font-size: 14px; line-height: 30px;"></span></span><pre name="code" class="java">public class Solution { public String longestPalindrome(String s) { int n = s.length(); int beginIndex = 0; int maxLength = 1; boolean[][] table = new boolean ; for (int i = 0; i < n; i++) { table[i][i] = true; } for (int i = 0; i < n - 1; i++) { if (s.charAt(i) == s.charAt(i + 1)) { table[i][i + 1] = true; beginIndex = i; maxLength = 2; } } for (int len = 3; len <= n; len++) { for (int i = 0; i <= n - len; i++) { int j = i + len - 1; if (s.charAt(i) == s.charAt(j) && table[i + 1][j - 1]) { table[i][j] = true; beginIndex = i; maxLength = len; } } } return s.substring(beginIndex, beginIndex + maxLength); } public static void main(String[] args) { System.out.println(new Solution().longestPalindrome("dabcbac")); } }
相关文章推荐
- BZOJ 2878([Noi2012]-失落的游乐园树DP+出站年轮加+后市展望DP+vector的erase)
- 网 卡 和 IP 的 应 用
- 测试用例思考
- Android 使用CursorLoader获取手机短信
- Linux文件系统操作与磁盘管理,转载自实验楼
- Asp.net笔记(原创)
- Nginx+Keepalived实现站点高可用
- Java File类总结和FileUtils类
- 学习kvm
- Python源码剖析笔记7-类机制
- 打印100---200之间的素数
- spring事务的隔离级别配置
- windows下划分逻辑分区
- 九九乘法表
- 一“结”(9)
- Linux中vim编辑器在命令行模式乱码的问题
- hadoop2.x.x 伪分布式安装
- PhoneGap 开发与应用 上传 App Store 在
- 一个比较低级的错误
- 字典树-字符串处理