The Aho-Corasick algorithm allows us to quickly search for multiple patterns in a text
http://web.stanford.edu/class/archive/cs/cs166/cs166.1166/lectures/02/Slides02.pdf
https://drive.google.com/file/d/1puSAKcZT_Y3fz8MmYGOaa-QRJuyX1TB-gXO-Fl9dbE7L9sq2G-IAKKP8u0Fg/view