For this Question: Given two strings A and B, you can perform three types of moves:-
1. Insert an element at any position
2. Delete an element from any position
3. Replace any element.
Your task is to convert String A into String B in a minimum number of moves.First line of input contains the string A, next line contains the string B.

Constraints:-
1 <= |A|, |B| <= 1000

Note:- String will contain only lowercase English lettersPrint the minimum number of moves.Sample Input:-
geek
gseke

Sample Output:-
2

Explanation:-
replace s with e and delete the last element

Sample input:-
Newton
School

Sample Output:-
5, I have written this Solution Code: import java.io.*;
import java.util.*;



class Main {
	public static void main (String[] args)throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s1 = br.readLine();
        String s2 = br.readLine();
        System.out.print(minMoves(s1,s2));
	}
    static int minMoves(String s1, String s2) {

        int[][] A = new int[s1.length()+1][s2.length()+1];

		for (int i = 0; i <=s1.length(); i++) {
			for (int j = 0; j <= s2.length(); j++ ) {
				if (i == 0) {
					A[i][j] = j;
				} else if ( j == 0) {
					A[i][j] = i;
				} else if (s1.charAt(i-1) == s2.charAt(j-1)) {
					A[i][j] = A[i-1][j-1];
				} else {
					A[i][j] = 1 + minValue(A[i-1][j-1], A[i-1][j], A[i][j-1]);
				}
			}
		}

		return A[s1.length()][s2.length()];
	}

	static int minValue(int x, int y, int z)
    {
        if (x <= y && x <= z){
            return x;
        }
        if (y <= x && y <= z){
            return y;
        }
        else{
            return z;
        }
    }
}, In this Programming Language: Java, Now tell me if this Code is compilable or not?