Finding how similar two strings are
I'm looking for an algorithm that takes 2 strings and will give me back a "factor of similarity". Basically, I will have an input that may be misspelled, have letters transposed, etc, and I have to find the closest match(es) in a list of possible values that I have. This is not for searching in a database. I'll have an in-memory list of 500 or so strings to match against, all under 30 chars, so it can be relatively slow. I know this exists, i've seen it before, but I can't remember its name. Edit: Thanks for pointing out Levenshtein and Hamming. Now, which one should I implement? They