Для начала подготовьте свой словарь.
1) Создайте новый хеш.
2) Перебираем весь словарь.
2.1) Разбиваем текущее слово на буквы, сортируем их, склеиваем.
2.2) Проверяем, есть ли в хеше такой ключ.
2.2.1) Если нет - то создаем hash[key] = [] (пустой массив)
2.2.2) Если да, то в массив добавляем текущее слово.
3) Подготовка окончена. Сохраняем текущий хеш и используем везде его.
4) Функция сравнения: берем слово, разбиваем по буквам, сортируем, склеиваем.
5) Проверяем наличие этого ключа в нашем словаре. Выводим результат.
Пример на JS:
jsfiddle.net/6bz8g9gz
Пример на питоне:
dict = ['wolf','flow','hello','world','folw','jack','open','close','nepo','peno','kill'];
def prepare(d):
hash = {};
for v in d:
v = v.lower()
list = [c for c in v]
list.sort()
result = "".join(list)
if hash.has_key(result):
hash[result].append(v)
else:
hash[result] = [v]
return hash
def test(word, d):
word = word.lower()
list = [c for c in word]
list.sort()
result = "".join(list)
if d.has_key(result) and len(d[result]) != 0:
return d[result]
else:
return False
d = prepare(dict)
print test("WolF", d)