diff --git a/ejercicio1.ipynb b/ejercicio1.ipynb
index 012109a4ef92355047247b65ad9fe413c79c8474..6ce4da0f2d580a6902e748cc646243267922f138 100644
--- a/ejercicio1.ipynb
+++ b/ejercicio1.ipynb
@@ -40,14 +40,14 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 2,
+   "execution_count": 6,
    "metadata": {},
    "outputs": [
     {
      "name": "stdin",
      "output_type": "stream",
      "text": [
-      "Ingrese una lista de palabras separadas por guiones sin dejar epacios;                se retornaran las palabras ordenadas alfabeticamente y sin repeticiones hola-como-estas\n"
+      "Ingrese una lista de palabras separadas por guiones sin dejar epacios;                se retornaran las palabras ordenadas alfabeticamente y sin repeticiones naranja-mango-perro-pera-casa-avion-perro\n"
      ]
     }
    ],
@@ -63,7 +63,7 @@
   },
   {
    "cell_type": "code",
-   "execution_count": 3,
+   "execution_count": 7,
    "metadata": {},
    "outputs": [],
    "source": [
@@ -77,14 +77,30 @@
    "source": [
     "## Separacion de las palabras\n",
     "\n",
-    "En la celda siguiente se ejecuta el proceso que permite extraer cada una de las palabras que el usuario ingresó, las cuales estan guardadas como en **UN** solo string, que llamamos `palabras`"
+    "En la celda siguiente se ejecuta el proceso que permite extraer cada una de las palabras que el usuario ingresó, las cuales estan guardadas en **UN** solo string, que llamamos `palabras`.\n",
+    "\n",
+    "+ Creamos una variable nueva llamada contador. Antes del ciclo `for`, esta variable es un string vacio.\n",
+    "\n",
+    "+ Hacemos un ciclo ``for`` que recorre la cadena de caracteres ``palabra``, y vamos guardando cada uno de estos caracteres en la variable ``contador``.\n",
+    "\n",
+    "+ Cuando uno de los caracteres en ``palabra`` coincide con un guion (``-``), quiere decir que la variable ``contador`` \"tiene\" la primera palabra.\n",
+    "\n",
+    "+ Apendamos esta palabra a la lista ``lista_de_palabras`` y reiniciamos la variable ``contador`` a un caracter vacio; de manera que en la siguiente iteración del ``for``, esta variable empiece a guardar la segunda palabra. "
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 8,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "Lista que contiene las palabras ingresadas sin guiones:  ['naranja', 'mango', 'perro', 'pera', 'casa', 'avion', 'perro']\n"
+     ]
+    }
+   ],
    "source": [
     "#--------------------------------------------------------------\n",
     "# Aqui ensaye como quitarle el ultimo caracter a un string\n",
@@ -101,27 +117,96 @@
     "        #Sin el [:-1] se añade la palabra con el guion delante\n",
     "        contador=\"\"\n",
     "\n",
-    "\n",
     "# lista_de_palabras es una lista que contiene las palabras del string original.\n",
-    "print(\"Lista que contiene las palabras ingresadas sin guiones: \",lista_de_palabras)"
+    "# print(\"Lista que contiene las palabras ingresadas sin guiones: \",lista_de_palabras)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Eliminacion de las palabras repetidas\n",
+    "\n",
+    "+ Para eliminar las palabras repetidas, convertimos la lista ``lista_de_palabras`` a un _conjunto_ que llamamos ``set_palabras_sin_repetir``; ya que este tipo de estructuras **NO** permiten la repeticion de elementos. "
    ]
   },
   {
    "cell_type": "code",
-   "execution_count": null,
+   "execution_count": 9,
    "metadata": {},
-   "outputs": [],
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      "set de palabras ingresadas sin repetir  {'naranja', 'perro', 'mango', 'avion', 'pera', 'casa'}\n"
+     ]
+    }
+   ],
    "source": [
     "set_palabras_sin_repetir=set(lista_de_palabras)\n",
-    "print(\"set de palabras ingresadas sin repetir \",set_palabras_sin_repetir)\n",
+    "print(\"set de palabras ingresadas sin repetir \",set_palabras_sin_repetir)"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Ordanacion alafabetica\n",
+    "\n",
+    "+ La estructura de _conjunto_ no nos permite hacer un ordenamiento alfabetico; para ello debemos volver a las listas, las cuales tienen el metodo ``.sort()``. \n",
     "\n",
+    "+ Creamos entonces una lista llamada ``lista_palabras_sin_repetir``, la cual contiene cada una de las palabras del string original, esta vez sin repeticiones. Luego aplicamos el metodo ``.sort()`` a esta lista."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 11,
+   "metadata": {},
+   "outputs": [],
+   "source": [
     "list_palabras_sin_repetir=list(set_palabras_sin_repetir)\n",
-    "print(\"lista de palabras ingresadas sin repetir \",list_palabras_sin_repetir)\n",
+    "# print(\"lista de palabras ingresadas sin repetir \",list_palabras_sin_repetir)\n",
     "\n",
     "# Ordenamos las palabras alfabeticamente\n",
     "list_palabras_sin_repetir.sort()\n",
-    "print(\"lista de palabras ingresadas sin repetir, ordenadas alfabeticamente \",list_palabras_sin_repetir)\n",
-    "# Hacemos el string final uniendo los elementos de list_palabras_sin_repetir\n",
+    "# print(\"lista de palabras ingresadas sin repetir, ordenadas alfabeticamente \",list_palabras_sin_repetir)\n",
+    "# Hacemos el string final uniendo los elementos de list_palabras_sin_repetir"
+   ]
+  },
+  {
+   "cell_type": "markdown",
+   "metadata": {},
+   "source": [
+    "## Retornamos las palabras con el formato que se pide en ejercicio\n",
+    "\n",
+    "+ Para retornar las palabras como se pide en el ejercico, las concatenamos usando un ciclo ``for`` que recorre los elementos de la lista ``list_palabras_sin_repetir``.\n",
+    "\n",
+    "+ Creamos una variable tipo _strin_ llamada ``semi_final_string``, la cual empieza siendo un caracter vacio ``\"\"``.\n",
+    "\n",
+    "+ En cada iteración del ciclo ``for`` concatenamos las palabras de la lista ``list_palabras_sin_repetir`` junto con un guion.\n",
+    "\n",
+    "+ Finalmente, retornamos una variable tipo _string_ que llamamos ``final_string``, la cual es contiene los elementos de la variable ``semi_final_string`` desde la posición ``[1]`` debido a que el proceso anteriormente descrito coloca un guion ``-`` antes de guardar la primera palabra."
+   ]
+  },
+  {
+   "cell_type": "code",
+   "execution_count": 12,
+   "metadata": {},
+   "outputs": [
+    {
+     "name": "stdout",
+     "output_type": "stream",
+     "text": [
+      " \n",
+      " \n",
+      "A continuación se muestra un string de las palabras ingresadas,\n",
+      "sin repeticion, y ordenadas alfabeticamente, separadas por guiones\n",
+      "avion-casa-mango-naranja-pera-perro\n"
+     ]
+    }
+   ],
+   "source": [
     "semi_final_string=\"\"\n",
     "for a in list_palabras_sin_repetir:\n",
     "    semi_final_string=semi_final_string+\"-\"+a\n",
@@ -144,13 +229,6 @@
    "source": [
     "Bibliografia: https://www.geeksforgeeks.org/python-convert-set-into-a-list/"
    ]
-  },
-  {
-   "cell_type": "code",
-   "execution_count": null,
-   "metadata": {},
-   "outputs": [],
-   "source": []
   }
  ],
  "metadata": {