Descripción
El problema se basas en remplazar los caracteres especiales por su valor en ASCII, simplemente iteramos en la entrada para remplazar por su valor en ASCII.
Solución rápida
Se puede resolver utilizando el método
str.maketrans
para crear una traducción, aplicando directamente a la cadena de entrada con el métodotranslate
.
Más información en W3Schools
Pasos
- Crear un diccionario con los caracteres especiales y su valor en ASCII
- Recibir lineas de entrada hasta que se reciba un
#
- Iterar en cada caracter de la linea de entrada
- Obtener el valor del caracter en el diccionario, si no existe el caracter se mantiene igual
get(llave, valor_por_defecto)
- Imprimir el resultado
Código
python
from sys import stdin, stdout
# chars = str.maketrans({ ... })
chars = {
" ": "%20",
"!": "%21",
"$": "%24",
"%": "%25",
"(": "%28",
")": "%29",
"*": "%2a",
}
for line in stdin:
if line == "#":
break
# stdout.write(line.translate(chars))
result = ""
for c in line:
result += chars.get(c, c)
stdout.write(result)