EDITAR Modifiqué la redacción de las reglas para hacer que algunas cosas implícitas fueran más explícitas. También agregué énfasis para aclarar algunos puntos de aparente confusión, y definí explícitamente la opción de hacer un programa independiente en lugar de una función.
El objetivo aquí es hacer una función que tome un archivo de texto (o cadena) y lo transponga para que las líneas se conviertan en columnas y viceversa.
Ejemplo:
Soy un texto Transpórtame ¿Puedes hacerlo?
Resultados en:
ITC real academia de bellas artes aan Minnesota sy apo UNED ts eed xo tm .ei .t ?
Las normas:
- Se le permite asumir que los únicos espacios en blanco son utilizados
" "
y"\n"
y que no hay espacios en blanco finales en cualquier línea. - Puede suponer que el archivo es ASCII. El marcador de línea final que desea utilizar depende de usted (CRLF o LF). Debe funcionar correctamente en el ejemplo, pero también debe funcionar en cualquier entrada que satisfaga los supuestos anteriores.
- Puede que tenga que insertar espacios (como en el ejemplo) donde no había ninguno para mantener las columnas en línea.
- Su resultado no debe tener espacios en blanco al final de ninguna línea .
- El carácter de nueva línea final (para la última línea) es opcional.
- Debe ser una función o un programa completo. Si su función acepta una cadena, debería devolver los resultados como una cadena. Si acepta un nombre de archivo, devuelve el nombre del archivo donde guardó el resultado. Además, puede escribir un programa completo que acepte la entrada de STDIN y envíe el resultado correcto a STDOUT; si lo hace, debe no producir una salida a stderr.
- El procedimiento más corto gana, pero votaré cualquier respuesta que me guste.
Según las reglas, la salida en el ejemplo tiene 53 o 52 bytes de longitud (para las nuevas líneas LF) dependiendo de si la nueva línea final está incluida o no.
Nota: No es un requisito específico, pero si su función, cuando se ejecuta dos veces sucesivamente, no es idéntica a la original (la nueva línea final puede ser diferente y se eliminarán las líneas vacías al final del archivo) probablemente rompiendo una de las reglas.