hqt

Palindrome string

hqt
Jan 29th, 2018
218
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.27 KB | None | 0 0
  1. public class StringPalindrome {
  2.     public static void main(String[] args) {
  3.         solve();
  4.     }
  5.  
  6.     public static void solve() {
  7.         String input = "ddddabccba";
  8.         int n = input.length();
  9.  
  10.         int[][] arr = new int[n][n];
  11.  
  12.         // init state
  13.         for (int i = 0; i < n; i++) {
  14.             for (int j = 0; j < n; j++) {
  15.                 if (i > j) arr[i][j] = Integer.MAX_VALUE;
  16.                 if (i == j) arr[i][j] = 0;
  17.                 if (i + 1 == j) {
  18.                     if (input.charAt(i) == input.charAt(j)) {
  19.                         arr[i][j] = 0;
  20.                     } else {
  21.                         arr[i][j] = 1;
  22.                     }
  23.                 }
  24.             }
  25.         }
  26.         arr[0][0] = 0;
  27.  
  28.         for (int i = n - 1; i >= 0; i--) {
  29.             for (int j = 0; j < n; j++) {
  30.                 if (i > j) continue;
  31.                 if (i == j) continue;
  32.                 if (i + 1 == j) continue;
  33.  
  34.                 if (input.charAt(i) == input.charAt(j)) {
  35.                     arr[i][j] = arr[i+1][j-1];
  36.                     continue;
  37.                 }
  38.  
  39.                 arr[i][j] = Math.min(arr[i + 1][j], arr[i][j - 1]) + 1;
  40.             }
  41.         }
  42.  
  43.         System.out.println("result: " + arr[0][n - 1]);
  44.     }
  45. }
Advertisement
Add Comment
Please, Sign In to add comment