Substring search with Z-algorithm
Your task
Implement substring search: return the index of the first occurrence of pat in text, or -1 if it does not occur. If pat is empty, return 0. Solve it in linear time using the Z-algorithm on the concatenation pat + sentinel + text (the sentinel must be a character that cannot appear in either input). For example, the first occurrence of "issip" in "mississippi" starts at index 4.
Examples
first_occurrence_z(text: str, pat: str) -> intExample 1
Input
first_occurrence_z("mississippi", "issip")Output
4