Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public class StringPalindrome {
- public static void main(String[] args) {
- solve();
- }
- public static void solve() {
- String input = "ddddabccba";
- int n = input.length();
- int[][] arr = new int[n][n];
- // init state
- for (int i = 0; i < n; i++) {
- for (int j = 0; j < n; j++) {
- if (i > j) arr[i][j] = Integer.MAX_VALUE;
- if (i == j) arr[i][j] = 0;
- if (i + 1 == j) {
- if (input.charAt(i) == input.charAt(j)) {
- arr[i][j] = 0;
- } else {
- arr[i][j] = 1;
- }
- }
- }
- }
- arr[0][0] = 0;
- for (int i = n - 1; i >= 0; i--) {
- for (int j = 0; j < n; j++) {
- if (i > j) continue;
- if (i == j) continue;
- if (i + 1 == j) continue;
- if (input.charAt(i) == input.charAt(j)) {
- arr[i][j] = arr[i+1][j-1];
- continue;
- }
- arr[i][j] = Math.min(arr[i + 1][j], arr[i][j - 1]) + 1;
- }
- }
- System.out.println("result: " + arr[0][n - 1]);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment