Bir işlev tanımını temsil eden bir dizenin girdisi verildiğinde, işlevin bağımsız değişkenlerinin yeni satırla ayrılması ve hizalanması için dizeyi yeni satırlar ve boşluklar eklenmiş olarak çıktılar.
Giriş dizesi aşağıdaki deseni izler:
İlk olarak, her zaman en az bir karakter uzunluğunda ve karakterlerden hiçbirini içermeyen bir önekle başlar
,()
.(
Ardından açık bir parantez ( ) argüman listesinin başlangıcını işaretler.Ardından sıfır veya daha fazla argümanın bir listesi gelecektir. Bunlar dizeyle
", "
(virgül ve sonra boşluk) ayrılır . Bağımsız değişkenlerin hiçbiri hiçbir karakteri içermeyecektir,()
.Yakın bir parantez (
)
) argüman listesinin sonunu işaretler.Son olarak, bir sonek uzun sıfır veya daha fazla karakter ve hangi bulunabilir olabilir karakterler içeriyor
,()
.
Giriş dizesi yalnızca yazdırılabilir ASCII'den oluşur (yani hiçbir zaman yeni satır içermeyecektir).
Çıktı şöyle olmalıdır:
Aynen kopyalanan önek ve açık parantez.
Bağımsız değişken listesi, bu sefer birbirinden değil,
", "
virgül, yeni satır ve her bağımsız değişkenin ilk karakterini dikey olarak hizalamak için gereken sayıda boşlukla ayrılmıştır .Close paren ve postfix (varsa) kelimesi kelimesine.
Bu kod golf olduğundan , bayt cinsinden en kısa kod kazanacaktır.
Test senaryoları (format: tek satır giriş, ardından çıkış ve ardından çift yeni satır):
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>>" "
gerçekten akıllı ...