Números escritos como texto
- O(n log n) · Difícil
- Plan completo
- Python
- JavaScript
- listas
- ordenar
- textos
Enunciado
Una app de encuestas guarda cada respuesta como texto: aunque la persona escriba 7, lo que queda guardado es "7".
Escribe una función que reciba una lista de números escritos como texto y regrese una lista nueva con ellos ordenados del más chico al más grande, y ya convertidos a número.
Con "4", "12", "45", "7", "0" y "100" regresas 0, 4, 7, 12, 45 y 100.
Las reglas: un número repetido se queda repetido, no quitas ninguno. Puede haber negativos, escritos con su signo. Si la lista llega vacía, regresas una lista vacía.
Cuidado con ordenar los textos tal cual: comparados como texto, "10" queda antes que "9", porque se comparan carácter por carácter. Conviene convertir antes de ordenar, o decirle a quien ordena con qué criterio comparar.
Ejemplos
Las respuestas del formulario
["4", "12", "45", "7", "0", "100"] → [0, 4, 7, 12, 45, 100]
El 9 y el 10
["10", "9", "100", "20"] → [9, 10, 20, 100]
Con repetidos
["3", "1", "3", "2", "1"] → [1, 1, 2, 3, 3]
Además de estas, el reto tiene pruebas ocultas que se revelan al enviar tu solución.
Empiezas con esto
Python
def ordena_numeros(textos):
passJavaScript
function ordenaNumeros(textos) {
}Se abre en el navegador, con el editor y las pruebas. Este reto es del plan completo; los de O(1) y O(log n) son gratis.