Combinació de lletres de paraules

Es demana que en el mòdul lletres (fitxer lletres.py), hi implementeu les funcions següents:

lletres.es_anagrama(a, b)

Donades dues paraules a i b (string), retorna un booleà que indica si una és un anagrama de l’altra, és a dir, si reordenant els caràcters de a es pot formar b.

Per exemple,

>>> import lletres
>>> lletres.es_anagrama('racional','carolina')
True
>>> lletres.es_anagrama('patata', 'poma')
False
>>> lletres.es_anagrama('mapa', 'poma')
False
>>> lletres.es_anagrama('coco', 'cocodril')
False
>>> lletres.es_anagrama('mullat', 'multat')
False

Disposeu de jocs de proves al fitxer test-anagrama.txt.

lletres.paraulogic(a, c, s)

Retorna un booleà que indica si la paraula a es pot formar seguint les regles del paraulògic (també anomenat spelling bee ) a partir del caràcter c i el conjunt de –exactament sis– lletres s. Aquestes regles indiquen que la paraula a ha ser de llargada mínima 3, només pot d’estar formada per lletres de \(s \cup {\{c\}}\) i obligatòriment ha de contenir c.

Per exemple,

>>> import lletres
>>> lletres.paraulogic('patata', 't', {'a', 'p', 'r', 's', 'x', 'e'})
True
>>> lletres.paraulogic('patata', 'x', {'a', 't', 'p', 'r', 's', 'e'})
False
>>> lletres.paraulogic('carxofera', 'x', {'c', 'r', 'a', 'o', 'f', 'e'})
True
>>> lletres.paraulogic('carxofera', 'x', {'c', 'r', 'a', 't', 'f', 'e'})
False
>>> lletres.paraulogic('ca', 'a', {'c', 'r', 'x', 'o', 'f', 'e'})
False
>>> lletres.paraulogic('fax', 'x', {'c', 'r', 'a', 'o', 'f', 'e'})
True

Per a resoldre aquest apartat es recomana utilizar els la classe set de python.

Disposeu de jocs de proves al fitxer test-paraulogic.txt.

lletres.tuti(a, c, s)

Retorna un booleà que indica si la paraula a és un tuti del paraulògic partint del caràcter c i el conjunt de –exactament sis– lletres s. Una paraula a és un tuti si és una paraula vàlida del paraulògic segons c i s que conté tots els caràcters de s.

Per exemple,

>>> import lletres
>>> lletres.tuti('patata', 't', {'a', 'e', 'p', 'r', 's', 'x'})
False
>>> lletres.tuti('carxofa', 'x', {'c', 'r', 'a', 'o', 'f', 'e'})
False
>>> lletres.tuti('carxofera', 'x', {'c', 'r', 'a', 'o', 'f', 'e'})
True
>>> lletres.tuti('carxofaire', 'x', {'c', 'r', 'a', 'o', 'f', 'e'})
False

Disposeu de jocs de proves al fitxer test-tuti.txt.

Disposeu d’una solució al fitxer lletres.py.