leetcode:Longest Palindromic Substring java
来源:互联网 发布:相机防抖算法 编辑:程序博客网 时间:2024/06/05 21:45
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.
开始我直接用了下面的蛮力解法,时间复杂度为O(n^3);结果可想而知,直接超时
public class Solution { public String longestPalindrome(String s) { int n=s.length(); int maxlength=0; String ss=""; if(n==1) { return s; } for(int i=0;i<n-maxlength;i++) { for(int j=i;j<n;j++) { int l=j-i+1; if(l<=maxlength) continue; if(s.charAt(i)!=s.charAt(j)) continue; String str=s.substring(i,j+1); int flag=0; for(int k=0;k<l/2;k++) { if(str.charAt(k)!=str.charAt(l-k-1)) { flag=1; break; } } if(flag==0) { maxlength=l; ss=str; } } } return ss; }}
然后,我想到了动态规划,使程序的时间复杂度降为O(N^2),成功AC
public class Solution{ public String longestPalindrome(String s) { if(s == null || s.length()==0) return ""; if(s.length()==1) return s; boolean[][] flag = new boolean[s.length()][s.length()]; String res = ""; int maxLen = 0; for(int j=1;j<s.length();j++) { for(int i=0;i<j;i++) { if(s.charAt(i)==s.charAt(j) && (j-i<=2 || flag[i+1][j-1])) //j-i<=2的判断是为了出现flag[2][3]=flag[3][2]这样的情况 { //比如 aa aba flag[i][j] = true; if(maxLen<j-i+1) { maxLen=j-i+1; res = s.substring(i,j+1); } } } } return res; }}
0 0
- [Leetcode] Longest Palindromic Substring (Java)
- Longest Palindromic Substring leetcode java
- [LeetCode][Java]Longest Palindromic Substring
- LeetCode-Longest Palindromic subString(java)
- LeetCode : Longest Palindromic Substring [java]
- leetcode:Longest Palindromic Substring java
- [LeetCode]Longest Palindromic Substring(Java)
- [LeetCode] Longest Palindromic Substring(java)
- leetcode Longest Palindromic Substring(Java)
- LeetCode: Longest Palindromic Substring
- LeetCode Longest Palindromic Substring
- LeetCode: Longest Palindromic Substring
- [Leetcode] Longest Palindromic Substring
- [LeetCode] Longest Palindromic Substring
- Leetcode : Longest Palindromic Substring
- [LeetCode]Longest Palindromic Substring
- leetcode Longest Palindromic Substring
- LeetCode-Longest Palindromic Substring
- oracle regexp_instr
- 调用拨打电话和发短信
- linux远程登陆不要密码,使用authorized_keys不生效的解决方法
- 快速排序 QuickSort Java代码
- iOS 一些有用的网址
- leetcode:Longest Palindromic Substring java
- Oracle SQL Profile指定执行计划
- 深入浅出Mybatis系列(十)---SQL执行流程分析(源码篇)
- DLL - How to Write
- svnsync: E230001: Server certificate verification failed issuer is not trusted
- Oracle 10046事件
- commons-pool实战之 GenericObjectPool和GenericKeyedObjectPool
- win7命令行 端口占用 查询进程号 杀进程
- 提问的智慧