Approximate String Matching With Dynamic Programming and Suffix Trees