0votos

Kata Anagramas en Python

por josejuan hace 6 años

Otra más.

En esta kata nos centraremos en construir un algoritmo que sea capaz de obtener los anagramas de cada palabra de un diccionario. El principal objetivo es pensar sobre los algoritmos, su legibilidad, velocidad de ejecución y extensibilidad.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def Anagramas(words, filter): 
  a = {} 
  for w in words: 
    k = ''.join(sorted(filter(w))) 
    if not k in a: 
      a[k] = [] 
    a[k].append(w) 
  return a 
 
 
 
 
 
# == usage ======================================================== 
import sys 
import string 
import unicodedata 
 
for k, v in Anagramas(map(string.rstrip, sys.stdin.readlines()), 
                      # filtro de caracteres, aquí se considera 'n' == 'ñ', 'A' == 'ä', etc... 
                      lambda c: unicodedata.normalize('NFD', c.decode('utf-8', 'ignore')).encode('ascii', 'ignore').lower()).iteritems(): 
  if len(v) > 1: 
    print ', '.join(v) 

Comenta la solución

Tienes que identificarte para poder publicar tu comentario.