https://courses.grainger.illinois.edu/cs466/sp2020/slides/Lecture17_SeqAssembly.pdf