Algorithms On Strings, Trees and Sequences Computer Science and Computational Biology by Dan Gusfield