Palabra más larga sin duplicados


Descripción

¿Cuál es la palabra más larga en la que puedes pensar en la cual cada letra solo aparezca una vez? Veamos si podemos encontrar una palabra más larga que “unpredictably”.

Escribe una función llamada has_duplicates que tome como parámetro una secuenca - por ejemplo, una lista o una cadena - y que devuelva True si hay algún elemento que aparezca más de una vez en la secuencia.

Usa esta función para revisar la lista de palabras del archivo words.txt y encontrar si existe una palabra sin letras repetidas que sea más larga que “unpredictably”.

Ejemplo de Ejecución:

>> python has_duplicates.py
ambidextrously

Solución

Mostrar solución
# Usando la función del ejercio previo
# http://pythongym.com/ejercicios/frecuencia-letras-think-python
def has_duplicates(word):
  freqs = value_counts(word)

  for v in freqs.values():
    if v > 1:
      return True
  return False


test_word = 'unpredictably'

# Buscanr palabras sin duplicados del archivo words.txt
words = open('/content/drive/MyDrive/words.txt', 'r')
for line in words:
  word = line.strip()
  if len(word) > len(test_word) and not has_duplicates(word):
    print(word)
words.close()

Probar solución en Google Colab

Fuente del ejercicio: https://allendowney.github.io/ThinkPython/chap10.html#id1