9-dołkowe minigolf: opis
- 9 (w większości dość łatwych) wyzwań golfowych o różnym stopniu trudności
- Kary za używanie tego samego języka więcej niż jeden raz
- Wszystkie wyzwania dotyczące określonego tematu (ten temat: manipulacja tekstem)
- Dane wejściowe i wyjściowe mogą być w dowolnym miejscu uzasadnione (tj. STDIN i STDOUT, odczyt z / zapis do pliku, argument funkcji i wartość zwracana itp.), Ale NIE mogą być zakodowane na stałe w programie
- Mocno zainspirowany 9-dołkowym wyzwaniem i mechaniką tekstową
Otwory
Torba golfowa
Weź dwa ciągi jako dane wejściowe.
Wypisuje liczbę znaków pierwszego łańcucha, ignorując jednocześnie wystąpienie dowolnego znaku w drugim ciągu.
Przykład:f("foobarbaz", "ao")
=>5
Pretekst do gry w golfa
Weź dwa ciągi jako dane wejściowe.
Wyprowadza pierwszy ciąg, z każdym wierszem poprzedzonym drugim.
Przykład:f("foo\nbar\nbaz", "a")
=>"a foo\na bar\na baz"
Wojna między kartami a spacjami
Weź jako dane wejściowe ciągs
, liczbęn
i wartość logicznąb
(określaną dowolnie).
Jeślib
jest to prawda, dane wyjściowes
są przekształcane przy każdej tabulacji nan
spacje.
W przeciwnym razie wypiszs
z każdąn
spacją przekonwertowaną na tabulatory.
Przykład:f("if (x) {\n\tdoStuff();\n}", 4, true)
=>"if (x) {\n[sp][sp][sp][sp]doStuff();\n}"
([sp]
oznacza spację)Filary golfa
Weź ciąg
s
, liczbęn
i inną liczbęm
jako dane wejściowe.
Dane wyjściowes
w kolumnachn
wierszy każdy im
znaki w kolumnie.
Wypełnij również jedną spację między kolumnami.
Przykład:f("this is some placeholder text, foo bar baz...", 3, 5)
=>this aceho foo is so lder bar b me pl text, az...
Przyjazne litery
Weź ciągs
i liczbęn
jako dane wejściowe.
Wypisuj najczęstszą grupęn
liter ws
.
Jeśli jest remis, wypisz jeden lub wszystkie z nich.
Przykład:f("abcdeabcfghiabc", 3)
=>"abc"
Jajecznica
Weź ciąg jako dane wejściowe.jajkalitery na śniadanie
Wypisuje ciąg ze wszystkimi słowami zaszyfrowanymi (kolejność liter losowo), z wyjątkiem pierwszych i ostatnich liter.
Dla uproszczenia załóżmy, że wejście będzie listą „słowa”, oddzielone spacjami (tzn. In@$&_():;" foo bar
,@$&_():;"
jest uważane za „słowo”).
Przykład:f("this is a sentence that will be scrambled")
=>"tihs is a stcneene that wlil be sclamrbed"
ASCIIfy
Weź ciąg jako dane wejściowe.
Jeśli ciąg zawiera tylko cyfry i spacje, zastąp je odpowiednimi znakami ASCII (usuwając spacje).
W przeciwnym razie wykonaj odwrotność (od znaków do cyfr).
Przykład:f("ASCIIfy challenge")
=>"65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101"
Przykład 2:f("65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101")
=>"ASCIIfy challenge"
Transformacja mini-mini-markdown
Weź ciąg jako dane wejściowe.
Wyprowadza ciąg znaków przekonwertowany za pomocą mini-markdown, jak zastosowano w komentarzach na Stack Exchange.
Jest to jeszcze wersja mini-er: trzeba tylko poradzić**bold**
,*italics*
i`code`
.
Nie musisz obsługiwać nieprawidłowego zagnieżdżania, np**foo *bar** baz*
. Załóż również, że gdy zobaczysz ogranicznik (*
lub`
), zawsze będzie oznaczać formatowanie (tj.te**st**ing
=>te<b>st</b>ing
Ifoo* bar *baz
=>foo<i> bar </i>baz
).
Przykład:f("**foo** *bar **baz*** `qux`")
=>"<b>foo</b> <i>bar <b>baz</b></i> <code>qux</code>"
Tylko najlepsze postacie
Weź ciągs
, liczbęn
i ciągr
jako dane wejściowe.
Wypiszn
th znak każdego słowa ws
. (Indeksowane 0, słowa są rozdzielane spacjami).
Jeśli długość słowa jest mniejsza niżn
, użyjr
zamiast niego tego słowa.
Przykład:f("this is a test sentence foo bar baz", 2, "-")
=>"i--snorz"
Punktacja
Twój wynik to suma liczby znaków w twoich programach. Dla każdego powtarzanego języka pomnóż przez 110%. Na przykład, jeśli masz trzy rozwiązania Ruby, a całkowita liczba znaków wszystkich twoich rozwiązań wynosi 1000, twój wynik to 1000 * 1,1 * 1,1 = 1210. Zaokrąglij w dół, jeśli masz wynik nie będący liczbą całkowitą.
Powodzenia!
_
nie ma znaczenia, ponieważ zdecydowałem się go nie uwzględniać. Zredagowałem, aby wyjaśnić niektóre inne.
**foo***bar**baz*
?