Advertisement
Guest User

<3 <3 <3 <3 <3 <3 <3

a guest
Dec 18th, 2017
66
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.56 KB | None | 0 0
  1. package com.company;
  2.  
  3. import java.io.File;
  4. import java.io.IOException;
  5. import java.io.PrintWriter;
  6. import java.util.Scanner;
  7.  
  8. public class Main {
  9.  
  10.     public static void main(String[] args) throws IOException {
  11.         Scanner sc = new Scanner(new File("input.txt"));
  12.         PrintWriter pw = new PrintWriter(new File("output.txt"));
  13. //        Scanner sc = new Scanner(System.in);
  14.         //считываем данные
  15.         String s1 = sc.nextLine();
  16.         String s2 = sc.nextLine();
  17.         int len1 = s1.length();
  18.         int len2 = s2.length();
  19.         int[][] dp = new int[len1+1][len2+1];
  20.         //заполняем i-ые строки и столбцы
  21.         dp[0][0] = 0;
  22. //        for (int i = 0; i<=len1; i++)
  23. //            dp[0][i] = i;
  24. //        for (int i = 0; i<=len2; i++)
  25. //            dp[i][0] = i;
  26.         for (int i = 1; i<=len1; i++)
  27.             dp[0][i] = i;
  28.         //динамика по формуле Вагнера-Фишера
  29.         for (int i = 1; i<=len1; i++) {
  30.             dp[i][0] = i;
  31.             for (int j = 1; j <= len2; j++) {
  32.                 if (s1.charAt(i - 1) != s2.charAt(j - 1)) {
  33.                     int min = Math.min(dp[i-1][j-1] + 1, dp[i-1][j] + 1);
  34.                     if (min < dp[i][j-1]+1)
  35.                         dp[i][j] = min;
  36.                     else
  37.                         dp[i][j] = dp[i][j-1]+1;
  38.                 } else
  39.                     dp[i][j] = dp[i - 1][j - 1];
  40.             }
  41.         }
  42.         pw.println(dp[len1][len2]);
  43.         pw.close();
  44.         sc.close();
  45.     }
  46. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement