Z

Z-Algorithm

I have contributed to the project named Algorithms.As the name suggests, I worked on the algorithm named Z Algorithm which helps in pattern-matching problems.

Z

Z-Algorithm

I have contributed to the project named Algorithms.As the name suggests, I worked on the algorithm named Z Algorithm which helps in pattern-matching problems.


The problem Z-Algorithm solves

Z algorithm is an algorithm for searching a given pattern in a string. It is an efficient algorithm as it has linear time complexity. It has a time complexity of O(m+n), where m is the length of the string and n is the length of the pattern to be searched.
It solves problems related to finding position of occurence of given pattern in given string.
String matching algorithms comparable to Z algorithm are Rabin-Karp algorithm, KMP algorithm, naive string matching.

Naive String searching algorithm matches the patterns checking it at each and every index whereas Rabin Karp follows a similar approach but it uses a hash function to match the pattern.

KMP algorithm follows a similar approach to Z algorithm but it uses an auxiliary array that stores the longest length of the proper prefix of the pattern that is also a suffix of the pattern.

Challenges I ran into

Problem of scanf operation hitting buffer overflow problem.
In C we don't have string data type so either we make use of pointer or char array.
I resolved the problem by adding the limit to the string.

Technologies used

Discussion