Skip to content
Snippets Groups Projects
Commit 5b6d27d9 authored by Sebastian Ordoñez's avatar Sebastian Ordoñez
Browse files

Notebook with the first exercise added.

parent 49166551
No related branches found
No related tags found
No related merge requests found
%% Cell type:markdown id: tags:
# Ejercicio No. 1 - Lista de palabras
**Enunciado:** Escriba un programa en python que acepte una lista de palabras separadas por guiones, e
imprima de vuelta las mismas palabras, sin repetición y nuevamente separadas por guiones,
después de ordenarlas alfabéticamente.
**Solución:** Hola, mi nombre es *Sebastian Ordoñez* (ordonezs), para solucionar este ejercicio opté por implementar una única función, `order`, la cual realiza en su totalidad lo requerido. En las líneas de código se encuentra documentación un poco más detallada, así como comentarios de qué hacen las líneas más importantes
%% Cell type:code id: tags:
``` python
def order(lista:str)->str:
"""
Esta función recibe una cadena (str) que contiene palabras separadas por guiones y retorna también una cadena
con las palabras nuevamente separadas por guiones, ordenadas alfabéticamente y sin repetición.
Input
------
lista (str): cadena que contiene las palabras separadas por guiones.
Output
------
final (str): cadena con las palabras separadas por guiones, ordenadas alfabéticamente y sin repetición.
"""
lista += "-" # A la cadena inicial se le añade un guión al final para evitar problemas con la última palabra.
words = [] # Lista que contendrá todas las palabras que se encuentran en la cadena inicial () lista
word = ""
for x in lista:
if x!="-":
word += x
else:
words.append(word)
word = ""
words = list(dict.fromkeys(words)) # Jugando con los tipos de objeto se eliminan las palabras repetidas
words = sorted(words) # Función para ordenar las palabras alfabéticamente
final = "" # Cadena final con las palabras en la lista "words"
for y in words:
if words.index(y)!=len(words)-1:
final += y+"-"
else:
final += y
return final
```
%% Cell type:markdown id: tags:
Ahora que hemos terminado de construir la función `order`, la cual realiza lo requerido por el problema, entonces pasamos a probarla. Para esto, podemos usar el ejemplo sugerido en el enunciado mismo, tal que:
%% Cell type:code id: tags:
``` python
order("naranja-avión-melodía-tupla-avión")
```
%% Output
'avión-melodía-naranja-tupla'
%% Cell type:code id: tags:
``` python
order("naranja-naranja-naranja")
```
%% Output
'naranja'
%% Cell type:code id: tags:
``` python
order("a-b-c-d-f-g-e-h")
```
%% Output
'a-b-c-d-e-f-g-h'
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment