Wenn Sie eine Zeichenfolge eingeben, die eine Funktionsdefinition darstellt, geben Sie die Zeichenfolge mit eingefügten Zeilenumbrüchen und Leerzeichen aus, damit die Argumente der Funktion durch Zeilenumbrüche getrennt und ausgerichtet werden.
Die Eingabezeichenfolge folgt dem folgenden Muster:
Zunächst beginnt es mit einem Präfix, das immer mindestens ein Zeichen lang ist und keines der Zeichen enthält
,().Eine offene Klammer (
() markiert dann den Anfang der Argumentliste.Es folgt eine Liste mit null oder mehr Argumenten. Diese werden durch die Zeichenfolge
", "(ein Komma und dann ein Leerzeichen) getrennt. Keines der Argumente enthält eines der Zeichen,().Eine enge Klammer (
)) markiert das Ende der Argumentliste.Zuletzt kann ein Postfix gefunden werden, der null oder mehr Zeichen lang ist und die Zeichen enthalten kann
,().
Die Eingabezeichenfolge besteht ausschließlich aus druckbarem ASCII (dh, sie enthält niemals eine neue Zeile).
Die Ausgabe muss sein:
Das wörtlich kopierte Präfix und die offene Klammer.
Die Argumentliste, diesmal nicht durch
", "Komma, Zeilenumbruch und so viele Leerzeichen getrennt, wie erforderlich sind, um das erste Zeichen jedes Arguments vertikal auszurichten.Das nahe Paren und Postfix (falls vorhanden) wörtlich.
Da es sich um Code-Golf , wird der kürzeste Code in Bytes gewinnen.
Testfälle (Format: einzeilige Eingabe, gefolgt von Ausgabe, gefolgt von doppelter Zeilenumbruch):
def foo(bar, baz, quux):
def foo(bar,
baz,
quux):
int main() {
int main() {
fn f(a: i32, b: f64, c: String) -> (String, Vec<i32>) {
fn f(a: i32,
b: f64,
c: String) -> (String, Vec<i32>) {
function g(h) {
function g(h) {
def abc(def, ghi, jkl, mno)
def abc(def,
ghi,
jkl,
mno)
x y z(x, y, z) x, y, z)
x y z(x,
y,
z) x, y, z)
a>>" "ist wirklich schlau ...