LeetCode——5. Longest Palindromic Substring
2017-01-21 21:32
155 查看
采用动态规划算法,相当悲哀。。。才beat 13%
public class Solution { public String longestPalindrome(String s) { int len=s.length(); int leftIndex=0,rightIndex=0; int maxLen=1; if(s.length()==0){ return ""; } //按下三角存储上三角 int[][] b=new int[len][]; for(int i=0;i<len;i++){ b[i]=new int[i+1]; } //初始化对角线,b[i][j]=1表示s[j..i]是回文串,=0表示不是回文串 for(int i=0;i<len;i++){ b[i][i]=1; } for(int x=1,dis=1;x<len;x++,dis++){ for(int cur_x=x;cur_x<len;cur_x++){ int cur_y=cur_x-dis; char leftChar=s.charAt(cur_y); char rightChar=s.charAt(cur_x); if(leftChar!=rightChar) b[cur_x][cur_y]=0; else{ if((cur_x-1 < cur_y+1) || b[cur_x-1][cur_y+1]==1){ //s[cur_y...cur_x]为回文串 b[cur_x][cur_y]=1; int cur_len=cur_x-cur_y+1; if(cur_len>maxLen){ maxLen=cur_len; leftIndex=cur_y; rightIndex=cur_x; } } else b[cur_x][cur_y]=0; } } } return s.substring(leftIndex, rightIndex+1); } }
相关文章推荐
- [LeetCode] Reverse Integer
- LeetCode: Palindrome Number
- Palindrome Number -- LeetCode
- LeetCode OJ平台上Binary Tree Inorder Traversal题目使用java堆栈方式实现
- leetcode 刷题报告 80 Single Number
- leetcode-pascal triangle I&&II
- Leetcode - Reverse Integer
- LeetCode – Refresh – Balanced Binary Tree
- leetcode_118题——Pascal's Triangle(简单的数学题)
- leetcode Compare Version Numbers
- [LeetCode] Strobogrammatic Number II
- Longest Consecutive Sequence——Leetcode
- LeetCode78——Subsets
- 《leetCode》:Unique Binary Search Trees
- Leetcode:219. Contains Duplicate II(JAVA)
- leetcode 42. Trapping Rain Water
- leetcode 11. Container With Most Water
- leetcode 206 头插法
- LeetCode74 Search a 2D Matrix
- LeetCode 135. Candy