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")=>5Pretekst 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ęni wartość logicznąb(określaną dowolnie).
Jeślibjest to prawda, dane wyjściowessą przekształcane przy każdej tabulacji nanspacje.
W przeciwnym razie wypiszsz każdąnspacją 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ęni inną liczbęmjako dane wejściowe.
Dane wyjściowesw kolumnachnwierszy każdy imznaki 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ągsi liczbęnjako dane wejściowe.
Wypisuj najczęstszą grupęnliter 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>ingIfoo* 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ęni ciągrjako dane wejściowe.
Wypisznth znak każdego słowa ws. (Indeksowane 0, słowa są rozdzielane spacjami).
Jeśli długość słowa jest mniejsza niżn, użyjrzamiast 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*?