Advertisement
Guest User

Untitled

a guest
Feb 28th, 2020
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.97 KB | None | 0 0
  1. import java.io.*;
  2. import java.util.*;
  3.  
  4. public class Assignment2b {
  5.  
  6.     public static int f(int i, int j, String str1, String str2){
  7.         if(str1.charAt(i-1)==str2.charAt(j-1))
  8.         return 0;
  9.         else return 1;
  10.     }
  11.  
  12.     public static void main(String[] args){
  13.  
  14.         System.out.print("Enter one of two strings to be compared: ");
  15.         Scanner scan = new Scanner(System.in);
  16.         String s1= scan.nextLine();
  17.         System.out.print("Enter string to be compared to " + s1 + ": ");
  18.         String s2= scan.nextLine();
  19.         System.out.println("Strings to be compared: " + s1 + " to " + s2);
  20.         int distance=0;
  21.  
  22.         int len1 = s1.length();
  23.         int len2 = s2.length();
  24.  
  25.         int m[][]=new int[len1+1][len2+1];
  26.         //offset first letter of s2
  27.         System.out.print("    ");
  28.         int z=0;
  29.         for(int i = 1; i < len1+1; i++) {
  30.             m[i][0] = i;
  31.         }
  32.         for(int j = 1; j<len2+1;j++) {
  33.             m[0][j] = j;
  34.             //outputs word s2 on top of grid
  35.             if(z!=len2) {
  36.                 System.out.print(s2.charAt(z) + " ");
  37.                 z++;
  38.             }
  39.         }
  40.         System.out.println();
  41.  
  42.         //start distance formula
  43.         for(int i =1; i < len1+1; i++) {
  44.             for(int j=1; j < len2+1; j++) {
  45.                 distance=m[i][j]=Math.min(m[i-1][j-1]+f(i,j,s1,s2),Math.min(m[i-1][j]+1,m[i][j-1]+1));
  46.             }
  47.         }
  48.  
  49.         z=0;
  50.         for(int i = 0; i < len1+1; i++) {
  51.             //printing s1 on side of grid since correct length position
  52.             if(i==0)
  53.                 System.out.print("  ");
  54.             if(z != len1 && i!=0) {
  55.                 System.out.print(s1.charAt(z)+ " ");
  56.                 z++;
  57.             }
  58.             for(int j = 0; j<len2+1;j++) {
  59.                 System.out.print(m[i][j]+" ");
  60.             }
  61.             System.out.println();
  62.         }
  63.  
  64.  
  65.  
  66.         System.out.println("Their distance is " + distance);
  67.     }
  68.  
  69. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement