BEARBEITEN Ich habe den Wortlaut der Regeln geändert, um einige Dinge, die implizit waren, deutlicher zu machen. Ich habe auch einige Akzente gesetzt, um einige offensichtliche Unklarheiten zu beseitigen, und die Option, ein eigenständiges Programm anstelle einer Funktion zu erstellen, explizit definiert.
Das Ziel hier ist es, eine Funktion zu erstellen, die eine Textdatei (oder einen String) aufnimmt und so transponiert, dass Zeilen zu Spalten werden und umgekehrt.
Beispiel:
Ich bin ein text Transponiere mich. Kannst du es machen?
Ergebnisse in:
ITC ra aan mn sy apo du ts eed xo tm .ei .t ?
Die Regeln:
- Sie dürfen davon ausgehen, dass nur Leerzeichen verwendet werden
" "und"\n"in keiner Zeile ein Leerzeichen nachgestellt ist. - Sie können davon ausgehen, dass die Datei ASCII ist. Welchen Endzeilenmarker Sie verwenden möchten, liegt bei Ihnen (CRLF oder LF). Es muss im Beispiel korrekt funktionieren, aber es sollte auch bei jeder Eingabe funktionieren , die die obigen Annahmen erfüllt.
- Möglicherweise müssen Sie Leerzeichen (wie im Beispiel) einfügen, wenn keine vorhanden sind, damit die Spalten in einer Linie bleiben.
- Ihr Ergebnis darf in keiner Zeile ein nachgestelltes Leerzeichen enthalten .
- Das letzte Zeilenumbruchzeichen (für die letzte Zeile) ist optional.
- Es sollte entweder eine Funktion oder ein vollständiges Programm sein. Wenn Ihre Funktion eine Zeichenfolge akzeptiert, sollte sie die Ergebnisse als Zeichenfolge zurückgeben. Wenn ein Dateiname akzeptiert wird, geben Sie den Namen der Datei zurück, in der Sie das Ergebnis gespeichert haben. Sie dürfen außerdem ein vollständiges Programm schreiben , das Eingaben von STDIN akzeptiert und das richtige Ergebnis an STDOUT ausgibt. wenn Sie dies tun, müssen Sie nicht ausgegeben , etwas zu STDERR.
- Das kürzeste Verfahren gewinnt, aber ich stimme jeder Antwort zu, die ich mag.
Basierend auf den Regeln ist die Ausgabe im Beispiel entweder 53 oder 52 Byte lang (für LF-Zeilenumbrüche), je nachdem, ob der letzte Zeilenumbruch enthalten ist oder nicht.
Hinweis: Dies ist keine spezielle Anforderung, aber wenn Ihre Funktion beim zweimaligen Ausführen nacheinander nicht mit der ursprünglichen Funktion identisch ist (die letzte Zeile kann abweichen und alle leeren Zeilen am Ende der Datei werden gelöscht), sind Sie es wahrscheinlich gegen eine der Regeln verstoßen.