String Algorithms — Master Recap and Pattern Cheatsheet

Sanjeev SharmaSanjeev Sharma
2 min read

Advertisement

String Algorithms — Master Recap

Problem Index

00Complete Guide (6 patterns, complexity table)
01KMP Search         → failure function O(n+m)
02Z-AlgorithmZ-array O(n+m)
03Rabin-Karp         → rolling hash O(n+m) avg
04Manacher's         → palindrome O(n)
05String HashingO(1) substring compare
06Suffix ArrayO(n log²n) build
07Longest Common SubstringDP O(nm)
08String DP          → edit distance, LCS, interleave
09Anagram Problems   → freq vector, sliding window
10Palindrome Suite   → expand, DP, min-cut
11Word Search I/IIDFS + Trie
12Encode/Decode      → length-prefix
13Shortest Palindrome→ KMP on s+'#'+rev
14Distinct Substrings→ suffix array + LCP
15String Compression → run-length, decode
16Trie AdvancedXOR trie, palindrome pairs
17Meta/Google Strings→ longest no-repeat, valid parens
18Aho-Corasick       → multi-pattern O(n+m+z)
19Master Recapthis file

Algorithm Selection

Single pattern search?
KMP O(n+m) — exact match
Rabin-Karp — multiple patterns, expected O(n)

All prefix occurrences?
Z-algorithm O(n+m)

Longest palindrome?
Manacher O(n) — fastest
Expand around centre O() — simpler

Substring comparison O(1)?
String hashing with prefix array

Substring queries (LCP, count distinct)?
Suffix array O(n log n) build + O(1) LCP

Multi-pattern search?
Aho-Corasick O(n + Σm + z)

Edit distance / LCS?
Classic DP O(nm), optimise with rolling array

Count palindromic substrings?
Expand O() or Manacher O(n)

Complexity Summary

AlgorithmTimeSpace
KMPO(n+m)O(m)
Z-functionO(n+m)O(n+m)
Rabin-KarpO(n+m) avgO(1)
ManacherO(n)O(n)
String hashO(n) build, O(1) queryO(n)
Suffix arrayO(n log²n)O(n)
Edit distanceO(nm)O(n) rolling
Aho-CorasickO(n+m+z)O(m·ALPHA)

Advertisement

Sanjeev Sharma

Written by

Sanjeev Sharma

Full Stack Engineer · E-mopro