9-Loch-Minigolf: Beschreibung
- 9 (meist recht einfache) Code-Golf-Herausforderungen mit unterschiedlichen Schwierigkeitsgraden
- Strafen für die mehrmalige Verwendung derselben Sprache
- Alle Herausforderungen zu einem bestimmten Thema (dieses Thema: Textmanipulation)
- Die Ein- und Ausgabe kann überall sinnvoll sein (z. B. STDIN und STDOUT, Lesen aus / Schreiben in eine Datei, Funktionsargument und Rückgabewert usw.), darf jedoch NICHT fest im Programm codiert sein
- Stark inspiriert von 9 Hole Challenge und Text Mechanic
Löcher
Code-Golftasche
Nehmen Sie zwei Zeichenfolgen als Eingabe.
Gibt die Anzahl der Zeichen der ersten Zeichenfolge aus und ignoriert dabei jedes Vorkommen eines Zeichens in der zweiten Zeichenfolge.
Beispiel:f("foobarbaz", "ao")
=>5
Ein Pre-Text zum Golfen
Nehmen Sie zwei Zeichenfolgen als Eingabe.
Geben Sie den ersten String aus, wobei jeder Zeile der zweite vorangestellt ist.
Beispiel:f("foo\nbar\nbaz", "a")
=>"a foo\na bar\na baz"
Krieg der Tabs gegen Leerzeichen
Nehmen Sie eine Zeichenfolges
, eine Zahln
und einen Booleschen Wertb
(angegeben, wie Sie möchten) als Eingabe.
Wenn diesb
zutrifft, wirds
jede Registerkarte inn
Leerzeichen umgewandelt.
Anderenfalls geben Sie dies
mit jedemn
Leerzeichen konvertierten Tabulatoren aus.
Beispiel:f("if (x) {\n\tdoStuff();\n}", 4, true)
=>"if (x) {\n[sp][sp][sp][sp]doStuff();\n}"
([sp]
bedeutet Leerzeichen)Säulen des Golfs
Nehmen Sie eine Zeichenfolge
s
, eine Zahln
und eine andere Zahlm
als Eingabe.
Ausgabes
in Spalten mitn
Zeilen undm
Zeichen pro Spalte.
Lassen Sie außerdem einen Abstand zwischen den Spalten frei.
Beispiel:f("this is some placeholder text, foo bar baz...", 3, 5)
=>this aceho foo is so lder bar b me pl text, az...
Freundliche Briefe
Nehmen Sie eine Zeichenfolges
und eine Zahln
als Eingabe.
Geben Sie die häufigsten
Buchstabengruppe in auss
.
Wenn es einen Gleichstand gibt, geben Sie einen oder alle davon aus.
Beispiel:f("abcdeabcfghiabc", 3)
=>"abc"
Scrambled
Nehmen Sie eine Zeichenfolge als Eingabe.eggsBuchstaben zum Frühstück
Geben Sie die Zeichenfolge mit allen Wörtern außer dem ersten und dem letzten Buchstaben in zufälliger Reihenfolge aus.
Zur Vereinfachung wird angenommen , dass die Eingabe eine Liste von „Wort“ s sein, Leerzeichen getrennt (dh in@$&_():;" foo bar
,@$&_():;"
wird ein als „Wort“) .
Beispiel:f("this is a sentence that will be scrambled")
=>"tihs is a stcneene that wlil be sclamrbed"
ASCIIfy
Nehmen Sie eine Zeichenfolge als Eingabe.
Wenn die Zeichenfolge nur Zahlen und Leerzeichen enthält, ersetzen Sie die Zahlen durch die entsprechenden ASCII-Zeichen (entfernen Sie die Leerzeichen).
Andernfalls machen Sie das Gegenteil (Zeichen zu Zahlen).
Beispiel:f("ASCIIfy challenge")
=>"65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101"
Beispiel 2:f("65 83 67 73 73 102 121 32 99 104 97 108 108 101 110 103 101")
=>"ASCIIfy challenge"
Mini-Mini-Markdown-Transformation
Nehmen Sie eine Zeichenfolge als Eingabe.
Geben Sie den mit Mini-Markdown konvertierten String aus, wie er in Kommentaren zu Stack Exchange verwendet wird.
Dies ist ein noch Mini-er Version: Sie behandeln müssen**bold**
,*italics*
und`code`
.
Sie müssen nicht mit ungültigen Verschachtelungen umgehen, wie z**foo *bar** baz*
. Nehmen Sie außerdem an, dass ein Begrenzer (*
oder`
) immer formatiert werden muss (dhte**st**ing
=>te<b>st</b>ing
undfoo* bar *baz
=>foo<i> bar </i>baz
).
Beispiel:f("**foo** *bar **baz*** `qux`")
=>"<b>foo</b> <i>bar <b>baz</b></i> <code>qux</code>"
Nur die besten Charaktere
Nehmen Sie eine Zeichenfolges
, eine Zahln
und eine Zeichenfolger
als Eingabe.
Geben Sie dasn
th Zeichen jedes Wortes in auss
. (0-indiziert, Wörter sind durch Leerzeichen getrennt).
Wenn die Länge des Wortes kürzer als istn
, verwenden Sier
stattdessen für dieses Wort.
Beispiel:f("this is a test sentence foo bar baz", 2, "-")
=>"i--snorz"
Wertung
Ihre Punktzahl ist die Summe der Zeichenanzahl Ihrer Programme. Multiplizieren Sie für jede wiederholte Sprache mit 110%. Wenn Sie beispielsweise drei Ruby-Lösungen haben und die Gesamtanzahl der Zeichen aller Ihrer Lösungen 1000 beträgt, beträgt Ihre Punktzahl 1000 * 1,1 * 1,1 = 1210. Runden Sie ab, wenn Sie eine nicht ganzzahlige Punktzahl haben.
Viel Glück!
_
spielt keine Rolle, da ich angegeben habe , es nicht einzuschließen . Ich habe bearbeitet, um einige der anderen zu verdeutlichen.
**foo***bar**baz*
?