From 1908eb861db4b2d3065842a4aa8e21138cf85ec8 Mon Sep 17 00:00:00 2001 From: Saurabhkumar Marpadge Date: Wed, 2 Oct 2019 06:02:14 +0000 Subject: [PATCH] Adding KMP String Matching Algorithm --- bin/.gitignore | 1 - .../DoublyLinkedList.class | Bin 3580 -> 3590 bytes .../MergeKSortedLists.class | Bin 2325 -> 2325 bytes bin/chapter04stacks/DynamicArrayStack.class | Bin 2412 -> 2453 bytes bin/chapter06trees/FindLevelwithMaxSum.class | Bin 1207 -> 1245 bytes .../MergingKSortedLists$1.class | Bin 1220 -> 1216 bytes .../KMPStringMatchingAlgorithm.java | 80 ++++++++++++++++++ 7 files changed, 80 insertions(+), 1 deletion(-) delete mode 100644 bin/.gitignore create mode 100644 src/chapter15stringalgorithms/KMPStringMatchingAlgorithm.java diff --git a/bin/.gitignore b/bin/.gitignore deleted file mode 100644 index c5e7f18..0000000 --- a/bin/.gitignore +++ /dev/null @@ -1 +0,0 @@ -/chapter21miscconcepts/ diff --git a/bin/chapter03linkedlists/DoublyLinkedList.class b/bin/chapter03linkedlists/DoublyLinkedList.class index 52320c1969a70b67ec9498011899d116195833b9..007722870c637f743213cc6204fa3622dc706114 100644 GIT binary patch delta 248 zcmXAiyG{aO6okJ8Wo4HQ#KeM#x|ncDpip9BPp>v46mI7W*!Tc6JOF=ajg_I`Y9U@5 zMbX#@ls2~d3?w*-&B>hk=A4~TTz37AJqiEi=V~xy{il3Dj5#xm{uk12rk2lr6Q;`n% UFel!r_sKF7C8xxhnQt%k2gSEGs{jB1 delta 238 zcmXBNy-osA5QgCw2&^o-Swlx$U?CAHk(f~FB}hXwB-{cCcR)u;b7E`kEJTDx6m3BH ziH*PwV9hm<=$F_`X1?>xnU23d8r<0NEnycW(jIz$h0?6EAojAlBUe)KkwABZ(J@SBbI2o5Z`s_;{kbQ@wuZ?@tQMIAzWm3te4OQ{UjrG~Jf_O_Y`7 K8jp?Hx&9yLUozYP diff --git a/bin/chapter03linkedlists/MergeKSortedLists.class b/bin/chapter03linkedlists/MergeKSortedLists.class index 907a4b13ed22c2429d0d5fb92eb3bfe823635300..a7033848f24c44c48c2f0d7a4d9d083cb6240813 100644 GIT binary patch delta 34 qcmbO#G*xKBO-3#u1_lOs9tH&l#mV;=RX1}miLo-uZI);M#s~n64F|sf delta 35 rcmbO#G*xKBO-5E826+aB$&VRTS%nxF800o{Fp04;DsGl%|HcRan41U0 diff --git a/bin/chapter04stacks/DynamicArrayStack.class b/bin/chapter04stacks/DynamicArrayStack.class index a0929fbca22e58b0d49f29b54fd1527c4e3cc170..0394af2b64a6921efb2b5dde46d0f609ad86a6f3 100644 GIT binary patch delta 739 zcmYk2%T5z<6vlsZX{Q~Ema3o((ONHwBTy}{QH&Ria%pJ+1qxa^h*psnLyYOJ8{S}a z%Zfx7F2qYQlIT+78yMpo_ymTiXWDAInaug0?|kR`ou83s`^>MuKYRrGxxZy@sHTa+ zaEL+nx-Zn@ElCAs-e6pz!_8|QQIial1``V5W#@?#UvWx>_|)UI2c<%YDQ>uXw1L(X zLnbL^Ld=qNGn(C*Vm`zOqXBL!sNG_dV!>Bn*%BNv<&ry1Iqb-x&i;JO4>#lO$h0zDObo9os~DeJ52 z+^iM4E_1~v2z$g#5BXwin znZZ!r!CCSs+MgyFEHUjd_0sKiXSiki+zUqvj72Cg7iFFWyXdC-3zVbWWFo|pgBcp| z;ffDeZQac}tM9+LH4|Rv5U!+>wj4}UwpAI9>5Z!oSM^@wFxT~cg9Kyrsyon{pkE!t zIL<|aIO6qiiKsRhF4Lt>xA2BAUmgLg4EFRl~E|GAH$U``gQgpUIQa?u;D_4c8KH4kTNlmPM|JT$TM5 zhFNV Je6iG(bkZ-zS4oOXJYM#pSt`k@Sdrp;Kcm~JpqC-Ip=`Rqp~cetJYK*}9y zFx%ixvF77}EwX_tuQ}DhiY+!+_NmEz>I>r}o9wl%z3-jO6*0Bz?Lm+fA=QuM;V}`` zb+;#^*&xHFF1SINr~7xa3*oNJUGB;GkiyD%+IwwR$Xpv-t6x%ZX4rzADurKo;Qs9UpC$d|Y3Zvp`1oLAvCO6qc_&iGX>N3T& xWP>xRf^-~?nUTLT!iFfYApa<8Vj_<~sg;${LSw8A1&O60Hd|?9V?twN zG#V_76@@;7FJeF)T${Nw=lf>v%xCO5=DdHuyaFvY@121PK2*idx#aPKiK^K}mlaA6 zO{1)0M;O>*y$lW_h2EYvhiJtc-j=1U5e;oUkr^?s&A)6&++bH*k7P&Gr%efD6Vm}ss4LHboFzSzLWn<9Em$DNL-XE$qcC=ZZ7pYEDO)FPmV*``52!Q zikwp7j56nV^r^1&&=ep#T5? diff --git a/bin/chapter07priorityqueues/MergingKSortedLists$1.class b/bin/chapter07priorityqueues/MergingKSortedLists$1.class index 25c326e8ed8037d02cd14ce90238e26a957a3a63..f42a6d4db7475712aa0b9e7f96a9bc006e0e1a43 100644 GIT binary patch delta 23 fcmX@Yd4O}n8fHe5$!nRVS=ksE85kyCWc~~QSE~l^ delta 27 jcmX@Wd4zMr8fHd|$!nRVIk^~^7#J8B8CWNuW&R8RYR(4! diff --git a/src/chapter15stringalgorithms/KMPStringMatchingAlgorithm.java b/src/chapter15stringalgorithms/KMPStringMatchingAlgorithm.java new file mode 100644 index 0000000..b9c22f2 --- /dev/null +++ b/src/chapter15stringalgorithms/KMPStringMatchingAlgorithm.java @@ -0,0 +1,80 @@ +package chapter15stringalgorithms; + +import java.io.*; + +public class KMPStringMatchingAlgorithm { + + public static void main(String[] args) throws Exception { + /* Enter your code here. Read input from STDIN. Print output to STDOUT. Your class should be named Solution. */ + BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); + BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); + int tc = Integer.parseInt(br.readLine()); + while(tc-->0) { + String[] input = br.readLine().split(" "); + char[] pattern = input[0].toCharArray(); + char[] text = input[1].toCharArray(); + if(pattern.length==1){ + bw.write(String.valueOf(getNoOfMatchedString(text,pattern))); + } else { + bw.write(String.valueOf(getNoOfMatchedStrings(text,pattern))); + } + + bw.newLine(); + } + bw.close(); + } + + private static int getNoOfMatchedString(char[] text, char[] pattern) { + char p = pattern[0]; + int count = 0; + for(int idx=0;idx0){ + p2 = lps[p2-1]; + } else { + p1++; + } + } + return count; + } + + public static int[] getLPS(char[] pattern){ + int[] lps = new int[pattern.length]; + int p1 = 0; + int p2 = 1; + lps[0] = 0; + while(p20){ + p1 = lps[p1-1]; + } else { + lps[p2]=0; + p2++; + } + } + return lps; + } +} \ No newline at end of file