Palabras Entrelazadas
Descripción
Una palabra está entrelazada (en inglés “interlocked”) si podemos dividirla en dos palabras tomando alternadamente sus letras. Por ejemplo, “schooled” es una palabra entrelazada porqué puede ser separada en las palabras “shoe” y “cold” (Más adelante se muestra el código para obtener estas palabras).
Para seleccionar letras de una cadena de forma alternada, puedes usar el operador slice (:
) con tres componentes que indiquen dónde comenzar, dónde terminar, y cuántos lugares avanzar (step size) en la cadena.
En el siguiente código, el primer componente es 0
, así que empezamos con la primera letra. La El segundo componente es None
, el cual significa que debemos de ir hasta el final de la cadena. Y el tercer componente es 2
, así que avanzamos 2 espacios entre las letras que seleccionamos.
word = 'schooled'
first = word[0:None:2]
first
'shoe'
Podemos lograr el mismo efecto, si en lugar de user None
como segundo componente simplemente no lo indicamos. Por ejemplo, el siguiente código alterna entre letras, comenzando con la segunda letra.
second = word[1::2]
second
'cold'
Escribe una función llamada is_interlocking
la cual tome una palabra como argumento y devuelva True
si puede ser dividida en dos palabras entrelazadas. Puedes usar la lista de palabras del archivo words.txt para verificar las palabras.
Ejemplo de Ejecución:
print(is_interlocked('schooled'))
True
Solución
Mostrar solución
with open('/content/drive/MyDrive/words.txt') as f:
words = f.read().splitlines()
def is_interlocked(word):
first = word[0::2]
second = word[1::2]
print(first)
print(second)
return first in words and second in words
print(is_interlocked('schooled'))
Fuente del ejercicio: https://allendowney.github.io/ThinkPython/chap10.html#id4