Если что не так, то код плохой. Нашёл ошибку, надо:
Но у меня получается SN. Если у вас другой алгоритм, поясните, почему должно получится HASN. Или расположение букв не важно?
Если надо сравнить общие буквы, то алгоритм такой: первое слово это множество букв, второе слово это другое множество букв, совпадение это пересечение множеств (Set1 * Set2).