Cadena más larga que contiene una letra (usando diccionarios)
Publicado por Jorge Alberto (50 intervenciones) el 24/12/2020 06:47:32
Hola. ¿Cómo andan? Tengo un problema con un ejercicio.
Escribir una función que reciba un texto y para cada caracter presente en el texto devuelva la cadena más larga en la que se encuentra ese caracter. (En el foro encontré el mismo tema abierto hace unos dos años, pero no fue resuelto).
Lo que hice hasta ahora es:
Con esto, puedo crear diccionarios donde las claves son todas las letras de la cadena y los valores son las palabras en donde figuran, pero de acá no sé cómo dejar únicamente la de mayor longitud.
Probé calculando la máxima longitud de cada valor en el diccionario (para cada clave por separado), pero no logro terminar de armarlo bien.
Alguna idea?
Escribir una función que reciba un texto y para cada caracter presente en el texto devuelva la cadena más larga en la que se encuentra ese caracter. (En el foro encontré el mismo tema abierto hace unos dos años, pero no fue resuelto).
Lo que hice hasta ahora es:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def cadena_mas_larga(cadena_larga):
cadena_larga_2 = cadena_larga.split()
lista,lista_longitudes = [],[]
diccionario = {}
for c in cadena_larga:
if c in lista: continue
for i in range(len(cadena_larga_2)):
if c in cadena_larga_2[i]:
lista.append(cadena_larga_2[i])
lista_longitudes.append(len(cadena_larga_2[i]))
diccionario[c]=lista
lista,lista_longitudes = [],[]
print(diccionario)
Con esto, puedo crear diccionarios donde las claves son todas las letras de la cadena y los valores son las palabras en donde figuran, pero de acá no sé cómo dejar únicamente la de mayor longitud.
Probé calculando la máxima longitud de cada valor en el diccionario (para cada clave por separado), pero no logro terminar de armarlo bien.
Alguna idea?
Valora esta pregunta


0