This is a java program to implement Wagner and Fisher Algorithm. In computer science, the Wagner–Fischer algorithm is a dynamic programming algorithm that computes the edit distance between two strings of characters.
Here is the source code of the Java Program to Implement Wagner and Fisher Algorithm for online String Matching. The Java program is successfully compiled and run on a Windows system. The program output is also shown below.
package com.maixuanviet.setandstring;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class WagnerandFischer
{
public int getLevenshteinDistance(String str1, String str2)
{
int len1 = str1.length();
int len2 = str2.length();
int[][] arr = new int[len1 + 1][len2 + 1];
for (int i = 0; i <= len1; i++)
arr[i][0] = i;
for (int i = 1; i <= len2; i++)
arr[0][i] = i;
for (int i = 1; i <= len1; i++)
{
for (int j = 1; j <= len2; j++)
{
int m = (str1.charAt(i - 1) == str2.charAt(j - 1)) ? 0 : 1;
arr[i][j] = Math.min(
Math.min(arr[i - 1][j] + 1, arr[i][j - 1] + 1),
arr[i - 1][j - 1] + m);
}
}
return arr[len1][len2];
}
public static void main(String[] args) throws IOException
{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter string 1 :");
String str1 = br.readLine();
System.out.println("Enter string 2 :");
String str2 = br.readLine();
WagnerandFischer wf = new WagnerandFischer();
int lDist = wf.getLevenshteinDistance(str1, str2);
System.out.println("Edit (Levenshtein) Distance between two strings = "
+ lDist);
br.close();
}
}
Output:
$ javac WagnerandFischer.java $ java WagnerandFischer Enter string 1 : Wagner and Fisher Algorithm Enter string 2 : Sanfoundry is No. 1 choice for Deep Hands-ON Trainings in SAN, Linux & C, Kernel & Device Driver Programming. Our Founder has trained employees of almost all Top Companies in India. Here are few of them: VMware, Citrix, Oracle, Motorola, Ericsson, Aricent, HP, Intuit, Microsoft, Cisco, SAP Labs, Siemens, Symantec, Redhat, Chelsio, Cavium Networks, ST Microelectronics, Samsung, LG-Soft, Wipro, TCS, HCL, IBM, Accenture, HSBC, Northwest Bank, Mphasis, Tata Elxsi, Tata Communications, Mindtree, Cognizant, mid size IT companies and many Startups. Students from top Universities and colleges such as NIT Trichy, BITS Pilani, University of California, Irvine, University of Texas, Austin & PESIT Bangalore have benefited a lot from these courses as well. The assignments and real time projects for our courses are of extremely high quality with excellent learning curve. Edit (Levenshtein) Distance between two strings = 844
Related posts:
Hướng dẫn Java Design Pattern – Decorator
Java Program to implement Bit Set
Java Program to Implement Multi-Threaded Version of Binary Search Tree
Các chương trình minh họa sử dụng Cấu trúc điều khiển trong Java
TreeSet và sử dụng Comparable, Comparator trong java
Using a Mutex Object in Java
Optional trong Java 8
Java Program to Generate a Sequence of N Characters for a Given Specific Case
Stack Memory and Heap Space in Java
Java Program to Implement Ternary Search Tree
Giới thiệu Java 8
Logout in an OAuth Secured Application
Unsatisfied Dependency in Spring
Java Program to implement Dynamic Array
Java Program to Implement Euclid GCD Algorithm
Quick Guide on Loading Initial Data with Spring Boot
Introduction to Java 8 Streams
Working With Maps Using Streams
Spring Boot - Cloud Configuration Server
Giới thiệu JDBC Connection Pool
Removing Elements from Java Collections
Spring MVC Tutorial
Exploring the Spring Boot TestRestTemplate
Programmatic Transaction Management in Spring
Java Program to Implement Ternary Tree
Java Program to Implement AVL Tree
Java Program to Implement First Fit Decreasing for 1-D Objects and M Bins
Posting with HttpClient
Java Program to Implement Fisher-Yates Algorithm for Array Shuffling
Removing all Nulls from a List in Java
Java Program to Represent Graph Using Incidence Matrix
Spring Boot Change Context Path