[leetcode 5]longest palindromic substring
2015-06-05 14:53
471 查看
1 题目:
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
Hide Tags
String
2 思路
开始我想了一种思路,对于那个特例输入:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
时间超了,我也没想出其他的办法。
后来看这个帖子:https://leetcode.com/discuss/17622/optimized-n-square-solution-in-java
它是采用了贪心法。里面解释也很详细,不再说了。
自己动手敲了一遍,实现了。
3 代码
最开始我的代码,时间超了
看懂别人代码后,自己实现的:
Given a string S, find the longest palindromic substring in S. You may assume that the maximum length of S is 1000, and there exists one unique longest palindromic substring.
Hide Tags
String
2 思路
开始我想了一种思路,对于那个特例输入:
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaabcaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
时间超了,我也没想出其他的办法。
后来看这个帖子:https://leetcode.com/discuss/17622/optimized-n-square-solution-in-java
它是采用了贪心法。里面解释也很详细,不再说了。
自己动手敲了一遍,实现了。
3 代码
最开始我的代码,时间超了
public class Solution { public String longestPalindrome(String s){ int end = s.length() - 1; int length = end + 1; String longestSubString = ""; for (int i = 0; i < length; i++) { int start = i; int rear = end; int temp = rear; while( start < rear ){ if (s.charAt(start) == s.charAt(rear)) { start++; rear--; }else { start = i; temp--; rear = temp; } if (start >= rear) {//结束了 if (longestSubString.length() < s.substring(i, temp + 1).length()) { longestSubString = s.substring(i, temp+1); } if(longestSubString.length() == s.substring(i,end+1).length()){ return longestSubString; } } } } return longestSubString; } }
看懂别人代码后,自己实现的:
public class Solution { public String longestPalindrome(String s){ char[] chars = s.toCharArray(); int len = s.length(); while(len >= 0){ for(int i = 0; i + len - 1 < chars.length; i++){ int right = i; int left = i + len - 1; boolean isPalin = true; while(right <= left){ if(chars[right] == chars[left]){ right++; left--; continue; }else{ isPalin = false; break; } } if(isPalin){ return s.substring(i, i + len); } } len--; } return ""; } }
相关文章推荐
- jQuery 效果 - 淡入淡出
- 关于B树/索引
- php中文乱码问题
- android设置背景色为透明
- 对不起,大学不能教会你成功
- 判断二维数组是否存在变量
- 那些不能错过的Xcode插件
- C# 安装包制作
- 利用AnimationDrawable实现控件的背景图片循环切换
- Spring动态管理IoC容器中的Bean
- 二叉搜索树及其方法的java实现
- Android下Invalid layout of java.lang.String at value的解决
- 黑马程序员_方法与数组
- SQLite性能优化
- php面向对象(OOP)—接口(interface)
- xen io tapdisk2基本流程分析
- [oc学习日记]字典
- windows系统上使用VS编译器时对缓冲区溢出的防范措施
- android paint 研究总结
- 记录自己做的一个简单的局域网聊天程序