Medium 5题 Longest Palindromic Substring
来源:互联网 发布:淘宝账户名怎么修改 编辑:程序博客网 时间:2024/06/16 08:30
Question:
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"
Solution:
都只过了38%???why。。。
public class Solution { public static String longestPalindrome(String s) { if(s==null) return ""; if(s.length()==1) return s; int min_start=0; int max_end=1; int max_len=1; int i=0; for(i=0;i<=s.length()-1;i++) { if(s.length()-i<=max_len/2) break; int k=i, j=i; //skip duplicate keys while(k<s.length()-1&&s.charAt(k)==s.charAt(k+1)) k++; while(k<s.length()-1&&j>0&&s.charAt(k+1)==s.charAt(j-1)) { k++; j--; } int len=k+1-j; if(max_len<len) { min_start=j; max_end=k+1; max_len=len; } } return s.substring(min_start,max_end); }}
public class Solution { public String longestPalindrome(String s) { if(s.length()==0||s==null) return ""; if(s.length()==1) return s; String longest=s.substring(0,1); int len=s.length(); for(int i=0;i<=len-1;i++) { if(s.length()-i<=longest.length()/2) break; String tmp=helper(s,i,i); if(tmp.length()>longest.length()) { longest=tmp; } tmp=helper(s,i,i+1); if(tmp.length()>longest.length()) { longest=tmp; } } return longest; } public String helper(String s, int begin,int end) { while(begin>=0 && end<=s.length()-1 && s.charAt(begin) == s.charAt(end)) { begin--; end++; } return s.substring(begin+1,end); }}
这是最优解
public class Solution { public String longestPalindrome(String s) { if(s==null||s.length()==0) return ""; int max=1; int low=0; int high=1; for(int i=0;i<=s.length()-1;i++) { if(isPalindrome(s,i-max-1,i)) { low=i-max-1; high=i+1; max+=2; } else if(isPalindrome(s,i-max,i)) { low=i-max; high=i+1; max+=1; } } return s.substring(low,high); } private boolean isPalindrome(String s, int start, int end) { if(start<0) return false; while(start<end){ if(s.charAt(start)!=s.charAt(end)) return false; start++; end--;; } return true; }}
0 0
- Medium 5题 Longest Palindromic Substring
- Medium 5题 Longest Palindromic Substring
- [Leetcode 5, Medium] Longest Palindromic Substring
- 【Leetcode】(5)Longest Palindromic Substring(Medium)
- 5. Longest Palindromic Substring Medium
- <LeetCode><Medium> 5 Longest Palindromic Substring #爆发式搜索
- LeetCode-5-Longest Palindromic Substring(动态规划)-Medium
- 题5Longest Palindromic Substring
- Longest Palindromic Substring(medium 常考)
- Leetcode 5. Longest Palindromic Substring (Medium) (cpp)
- (Leetcode)5. Longest Palindromic Substring(medium)
- 5. Longest Palindromic Substring (Medium)
- Longest Palindromic Substring(leetcode medium algorithm problem)
- (算法分析Week6)Longest Palindromic Substring[Medium]
- 5、Longest Palindromic Substring
- 5,Longest Palindromic Substring
- 5 longest palindromic substring
- 5、Longest Palindromic Substring
- VB6 异常捕捉 Try catch
- numpy.newaxis
- 11Spring的事务处理
- hdu2049 不容易系列之(4)——考新郎
- tensorflow从0开始(6)——保存加载模型
- Medium 5题 Longest Palindromic Substring
- 12Spring的事务处理二
- java算法4~交换两个整数,不能使用任何额外的变量
- PHP 用户提交的数据的安全性验证
- python中is和==的区别
- 13Spring的数据访问方式
- spring-data-mongodb-1.9.x中Aggregation关于Conditional Aggregation Operators的坑
- IOS Label下划线 中划线
- 重叠I/O之事件通知