From 2281787d0f31b69336fcbf30164acb081d8cccd0 Mon Sep 17 00:00:00 2001 From: rahul357 Date: Thu, 5 Oct 2017 23:53:24 +0530 Subject: [PATCH] added longest palindrome using dynamic programming --- Dynamic Programming/LongestPalindrome.java | 25 ++++++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 Dynamic Programming/LongestPalindrome.java diff --git a/Dynamic Programming/LongestPalindrome.java b/Dynamic Programming/LongestPalindrome.java new file mode 100644 index 000000000000..070568065590 --- /dev/null +++ b/Dynamic Programming/LongestPalindrome.java @@ -0,0 +1,25 @@ +class LongestPalindrome{ + + public static int lpal(String str){ + int n =str.length(); + if(n == 0 )return 0; + StringBuilder str1= new StringBuilder(str); + str1=str1.reverse(); + int dp[][] = new int[n+1][n+1]; + + for(int i =0;i<=n;i++){dp[i][0]=0;dp[0][i]=0;} + for(int i =1;i<=n;i++){ + for(int j =1;j<=n;j++){ + if(str.charAt(i-1)==str1.charAt(j-1))dp[i][j]=dp[i-1][j-1]+1; + else dp[i][j] = Math.max(dp[i-1][j],dp[i][j-1]); + } + } + return dp[n][n]; + } + + + public static void main(String args[]){ + String str = "ZILLIOUSOUILZIL"; + System.out.println(lpal(str)); + } +}