Hast du schon mal Lust gehabt , coole Twitter-Hashtags wie #brexit oder #brangelina zu erstellen ? Dieser Golf ist für Sie.
Schreiben Sie ein Programm, das zwei Strings A & B als Eingabe akzeptiert und diese nach folgendem Algorithmus zusammenführt:
- sei
n
die Anzahl der Vokalgruppen in A (zBbritain
hat 2 Vokalgruppen:i
in Position 3 undai
in Position 5).- wenn n = 1: A ab der ersten Vokalgruppenposition abschneiden (Beispiel:
bill
=>b
) - wenn n> 1: A ab der
n-1
Position der Vokalgruppe abschneiden (Beispiel:programming
=>progr
,britain
=>br
)
- wenn n = 1: A ab der ersten Vokalgruppenposition abschneiden (Beispiel:
- entferne alle Konsonanten am Anfang von B (
jennifer
=>ennifer
) - Verketten Sie die modifizierten A & B
Vokale sind aeiou
; Konsonanten sind bcdfghjklmnpqrstvwxyz
.
Eingang
Sie können davon ausgehen, dass die Eingabezeichenfolgen klein geschrieben sind und mindestens einen Vokal und einen Konsonanten enthalten.
Beispiele
brad + angelina => brangelina
britain + exit => brexit
ben + jennifer => bennifer
brangelina + exit => brangelexit
bill + hillary => billary
angelina + brad => angelad
programming + puzzle => progruzzle
code + golf => colf
out + go => o
donald trump
.Django + Angular = Djular
Antworten:
Ruby,
444340 + 1 = 41 Bytes+1 Byte für
-p
Flag. Übernimmt eine durch Leerzeichen getrennte Eingabe für STDIN.-1 Byte dank Martin Ender
-2 Byte dank Histokrat
Probieren Sie es online!
GNU sed,
3937 + 1 = 38 Bytes+1 Byte für
-E
Flag. Übernimmt eine durch Leerzeichen getrennte Eingabe für STDIN.-1 Byte dank Martin Ender
Probieren Sie es online!
Dies nicht als separate Antwort zu posten, da es buchstäblich dieselbe Lösung ist.
quelle
[^aeiou]
als Unterausdruck erfassen :/([aeiou]+([^aeiou]*)){,2} \g<2>/
ruby -e "..."
. Dafür ist esruby -pe "..."
, also fügt es nur ein Byte hinzu.MATL,
3130 BytesProbieren Sie es online
Erläuterung
quelle
JavaScript (ES6),
817372 Byte8 Bytes dank @Jordan, 1 dank @DavidConrad gespeichert
Obwohl
.match
ein Array zurückgegeben wird, wirdarray+array
eine Zeichenfolge mit dem Inhalt der verketteten Arrays zurückgegeben (dh[0]+[1]
zurückgegeben"01"
).Testschnipsel
Code-Snippet anzeigen
Jordans exzellente Ruby-Lösung wäre 53 Bytes in JS:
quelle
(a,b)=>
uma=>b=>
1 Byte zu sparen.Jelly ,
2322 BytesTryItOnline
Wie?
quelle
PowerShell v2 +, 76 Byte
Anscheinend ist dies ein beliebter Regex ... ;-)
Verwendet den
-replace
Operator, um die entsprechenden Teile abzuziehen, und verknüpft dann die Ergebnisse miteinander. Fügt ein$
zum ersten hinzu, um sicherzustellen, dass wir das Ende der Zeichenfolge ziehen, und fügt ein^
zum zweiten hinzu, um sicherzustellen, dass wir die Vorderseite der Zeichenfolge abziehen.quelle
Retina , 35 Bytes
Probieren Sie es online! (Die erste Zeile aktiviert eine durch Zeilenvorschub getrennte Testsuite.)
Entfernt einfach alle Übereinstimmungen des regulären Ausdrucks in der ersten Zeile.
quelle
/^((\(\g<1>\))*)$/
in Ruby mit übereinstimmen .Zimtgummi, 23 Bytes
Probieren Sie es online aus.
Erläuterung
Dies dekomprimiert nach
d([aeiou]+[^aeiou]*)([aeiou]+[^aeiou]*)? [^aeiou]*
, wodurchd
alles gelöscht wird, was zu diesem regulären Ausdruck passt. (Beachten Sie, dass Jordaniens Golfspielerd([aeiou]+[^aeiou]*){,2} [^aeiou]*
aufgrund des Fehlens wiederholter zu komprimierender Elemente auf 24 Byte komprimiert.)quelle
d[aeiou]+[^aeiou]*[aeiou]*[^aeiou]* [^aeiou]*
noch kürzer?PHP, 95 Bytes
mit preg_match statt preg_filter 110 Bytes
quelle
+
anstelle von verwenden{1,2}
.$v=aeiou;
, um weitere 3 zu speichern.Lua, 66 Bytes
quelle
Perl 5, 39 Bytes
38, plus 1 für
-pe
statt-e
Hutspitze.
quelle
Python 2, 139 Bytes
Dieser war schwer.
Schau es dir auf repl.it an
quelle
Lithp , 65 Bytes
Dies ist im Grunde eine Portierung der obigen JavaScript-Antwort in meiner funktionalen Programmiersprache "Lisp-ish".
Anwendungsbeispiel:
Noch kein Online-Dolmetscher. Ich werde bald eine zur Verfügung stellen. Es wird nicht schwierig sein, meine Sprache ist in JavaScript geschrieben.
Stattdessen wird diese Rätsellösung als Arbeitsbeispiel für meine Sprache implementiert. Es kann mit dem folgenden Befehl ausgeführt werden:
quelle
Haskell,
111108 BytesDiese Nicht-Regex-Lösung erwies sich als länger als erwartet. Ideone es trotzdem.
quelle
Jq 1,5 , 45 Bytes
Nichts Besonderes, nur ein Port von msh210 ‚s Perl Lösung jq der PCRE.
Probieren Sie es online!
quelle
Japt , 18 Bytes
Probieren Sie es online!
Direkter Port der kurzen JS-Lösung, die wiederum der Port von Jordans Ruby-Lösung ist .
Wie es funktioniert
quelle