We can only see a short distance ahead, but we can see plenty there that needs to be done.
KnuthMorrisPratt (KMP) Algorithm
Check whether a string W is a substring of another string S or not.
For example: bc is a substring of abcd whereas bd is not.
Takes O(|W|+|S|) time.
Aho Corasick Algorithm
It is used to find the occurrences of a word in the text.
Takes linear time.
Suffix Arrays
A sorted array of all the suffixes of a word.
Construction by various techniques and how they are used to solve most of the string problems.
Suffix Array of abac is [abac,ac,bac,c].
Suffix Trees
Tree based structure to store all the suffixes.
It allows particularly fast implementation of many string algorithms.
Construction by couple of techniques and using them to solve problems.
Manacher's Algorithm
Finding longest palindromic substring in Linear time.
Also we can find the length of palindromic substring centered at a certain position.