第二题,递归做
import java.util.Scanner;
/**
@author Zhang Han
@date 2019/4/7 14:08
/
public class SolutionWangyi2 {
public static void swap(int[] arr, int i, int j) {
int temp = arr[j];
arr[j] = arr[i];
arr[i] = temp;
}
public static int[] removeFirst(int[] a) {
int[] result = new int[(a.length - 1)];
for (int i = 1; i < a.length; i++) {
result[i - 1] = a[i];
}
return result;
}
public static int solve(int[] a, int[] b) {
if (a.length == 1) {
return a[0] - b[0];
}
int result = Integer.MAX_VALUE;
for (int j = 0; j < a.length; j++) {
swap(a, j, 0);
int temp = (j > 0 ? 1 : 0) + Math.abs(a[0] - b[0]) + solve(removeFirst(a), removeFirst(b));
result = Math.min(result, temp);
swap(a, j, 0);
}
return result;
}
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String s = scanner.next();
String[] value = s.split(",");
String origin = value[0];
String target = value[1];
int length = origin.length();
int[] originArr = new int[length];
for (int i = 0; i < length; i++) {
originArr[i] = origin.charAt(i) - '0';
}
int[] targetArr = new int[length];
for (int i = 0; i < length; i++) {
targetArr[i] = target.charAt(i) - '0';
}
System.out.println(solve(originArr, targetArr));
}
}