/** * @author Prateek Kumar Oraon (https://github.com/prateekKrOraon) */ import java.util.Scanner; //An implementaion of string matching using finite automata public class StringMatchFiniteAutomata{ public static final int CHARS = 256; public static int[][] FA; public static Scanner scanner = null; public static void main(String[] args){ scanner = new Scanner(System.in); System.out.println("Enter String"); String text = scanner.nextLine(); System.out.println("Enter pattern"); String pat = scanner.nextLine(); searchPat(text, pat); scanner.close(); } public static void searchPat(String text, String pat){ int m = pat.length(); int n = text.length(); FA = new int[m+1][CHARS]; computeFA(pat, m ,FA); int state = 0; for(int i=0;i0; ns--){ if(pat.charAt(ns-1) == x){ for(int i=0; i