Exact String Matching: The Fundamental String Problem Suffix Trees And Their Uses Inexact Matching, Sequence Alignment, And Dynamic Programming Currents, Cousins And Cameos