Python - Ayuda con algoritmo

 
Vista:
sin imagen de perfil
Val: 66
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con algoritmo

Publicado por Toni (35 intervenciones) el 28/03/2019 21:27:51
Buenas tardes,

soy novato en programación en Python. Tengo que resolver el siguiente algoritmo. Dada una cadena s de caracteres, de longitud n, y un número entero positivo k, siendo k un divisor de n, es posible dividir la cadena s en n/k subcadenas de la misma longitud.

Hay que escribir una función (def) donde, dada una cadena s y un número entero k, devuelva las n / k subcadenas, teniendo en cuenta los siguientes requisitos:

- el orden de los caracteres en las subcadenas debe ser el mismo que en la cadena original.

- todos los caracteres de las subcadenas deben aparecer una única vez. Es decir, si un carácter se repite dentro de una subcadena, sólo hay que mostrar la primera aparición.

Por ejemplo, si tenemos:
s = AABCCAADA
k = 3

Tenemos que la longitud de la cadena es 9, con lo que podemos formar 3 subcadenas:

- AAB, que pasaría a ser AB (el carácter A se repite dos veces)
- CCA, que pasaría a ser CA (el carácter C se repite dos veces)
- ADA, que pasaría a ser AD (el carácter A se repite dos veces)

¿Alguien podría ayudarme?

Muchas gracias.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil
Val: 388
Bronce
Ha mantenido su posición en Python (en relación al último mes)
Gráfica de Python

Ayuda con algoritmo

Publicado por Daniel (111 intervenciones) el 28/03/2019 22:56:18
Hola,

1
2
3
4
5
6
7
8
9
10
11
def split(s, k):
    sub = len(s) // k
 
    result = [''] * k
 
    for i in range(sub):
        for j in range(k):
            if s[k*i+j] not in result[i]:
                result[i] += s[k*i+j]
 
    return result

Saludos,
Daniel Rodríguez.
Analytics Lane
Python en Analytics Lane
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 66
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con algoritmo

Publicado por Toni (35 intervenciones) el 28/03/2019 23:40:13
Muchas gracias Daniel.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 66
Ha disminuido su posición en 2 puestos en Python (en relación al último mes)
Gráfica de Python

Ayuda con algoritmo

Publicado por Toni (35 intervenciones) el 01/04/2019 21:32:20
Buenas noches Daniel,

¿podrías explicar qué hace cada línea del programa? No acabo de entender el algoritmo.

Un saludo y gracias por adelantado.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar