WAP que acepta dos cadenas y devuelve los índices de todas las apariciones de la segunda cadena en la primera cadena como una lista.

programación


No puedo entender este problema… por favor, hágamelo entender y escriba un programa para resolver esta pregunta.

Lo que he probado:

No tengo idea de cómo abordar esta pregunta.

Solución 1

Comience a leer la tarea con atención; puede ser diferente del “resumen” que nos proporcionó.
Necesitas encontrar todas las veces que una cadena ocurre dentro de otra. Entonces, si buscas todas las apariciones de “hola” en “hola Mike, hola Jane, hola Peter”, aparecerá allí tres veces: “hello Miguel, hello jane, hello Peter” y los índices son el número de caracteres desde el inicio de la cadena en la que aparece la subcadena:

hello Mike, hello Jane, hello Peter
^           ^           ^
|           |           |
|           |            --- 24
|            --- 12
--- 0

Luego pregúntese “¿Cómo haría esto manualmente?”.
Revisaría la cadena buscando la “h” y verificando si fue seguida por una “e”, luego una “l”, y así sucesivamente. Si fue así, ha encontrado una subcadena, así que tome nota de la posición inicial.
De cualquier manera, pasarías al siguiente personaje y volverías a verificar.

Calcule mentalmente exactamente qué reglas debe seguir y pruébelas manualmente en varias cadenas y subcadenas diferentes. Cuando tenga reglas que cubran todos los casos que se le ocurran (incluidas cadenas vacías, coincidencias completas, ninguna coincidencia, etc.), piense en cómo informatizarlas.

Si tiene problemas para comenzar, esto puede ayudar: Cómo escribir código para resolver un problema, una guía para principiantes[^]

Solución 2

Ver Tipos integrados: documentación de Python 3.10.10[^] para obtener información sobre el uso y acceso a cadenas.

Solución 3

def buscar_índices(cadena1, cadena2):
índices = []

para i en el rango (len (str1)):
si str1[i:i + len(str2)] == cadena2:
índices.append(i)
devolver índices si los índices son -1

コメント

タイトルとURLをコピーしました