Die Herausforderung
Schreiben Sie eine Funktion oder ein Programm, das als Argument eine Zeichenfolge verwendet, die aus einem oder mehreren subjektiven Personalpronomen besteht , die durch + Zeichen getrennt sind . Die Ausgabe muss ein einzelnes Pronomen sein, dh das Ergebnis der im nächsten Absatz definierten Beziehung.
Natürlich können Sie diese bearbeiten, um die sicher vorhandenen grammatikalischen Fehler zu korrigieren.
Dies ist eine Code-Golf-Herausforderung, also gewinnt der kürzeste Code.
Die Beziehung
Das Ziel dieser Aufgabe ist es, etwas, das wir täglich benutzen, in "Mathe-Sprechen" zu übersetzen. Wie denken wir über "Sie und ich"? Nun, "Wir", nicht wahr? Wenn es sich bei der Eingabe um You+I
die Ausgabe handelt, sollte dies die Zeichenfolge sein We
. Mit mehr als zwei Pronomen sollte es so aussehen:
You+He+They
->You
Die Relation ist wie folgt definiert:
I You He We You They
I I We We We We We
You You You We You You
He He We You They
We We We We
You You You
They They
Das "Du" -Problem
Wie Sie sehen, bin ich keine englische Muttersprachlerin. In meiner Sprache (Italienisch) gibt es einen Unterschied zwischen dem Plural du ( voi , italienisch) und dem Singular du ( tu ). Als ich an diese Herausforderung dachte, dachte ich nicht auf Englisch, daher gibt es das Problem, dass ich nicht erkennen kann, ob ich Plural oder Singular verwende. Glücklicherweise (oder offensichtlich?) Ändert sich die Eingabe / Ausgabe nicht in beiden Formen, so dass Sie eine von ihnen verwenden können und beide Fälle abdecken werden!
Über die Eingabe
Die Eingabe erfolgt immer in der Form "Pronomen + Pronomen + Pronomen" ... Die Pronomen haben den ersten Buchstaben in Großbuchstaben und den Rest in Kleinbuchstaben. Pluspunkte werden nicht von Leerzeichen, sondern nur von Pronomen umgeben. Leere Eingaben sind möglich und das Ergebnis muss eine leere Ausgabe sein.
Bonus
Ein kleiner Bonus von 15%, wenn das Programm zwei neue Pronomen verwaltet: She and It . Sie sind offensichtlich die gleichen wie Er. Denken Sie daran, dass diese Beziehung reflexiv ist, also Sie -> Sie und Es -> Es. Daher sollte jede Kombination, die nur She, He oder It enthält, They ausgeben.
Beispiele
You+I -> We
You+He+They -> You
I+You+He+They -> We
They -> They
They+You -> You
You+You+I+You -> We
For Bonus
She -> She
She+He -> They
I+It+He -> We
It+You -> You
quelle
I+I=I
", da esI
von einem Sprecher nur einen geben kann . Konnte aber nicht "He+He=They
"? Im Allgemeinen, wenn Sie sagen "He
in dieser Konstruktion zweimal " , beziehen Sie sich im auf zwei verschiedene männliche Probanden, nicht zweimal auf dasselbe.Antworten:
Retina,
62 61 56 5352 BytesWeitere Golf und Erklärung kommt später.
Die 4 Substitutionsschritte führen Folgendes aus:
Probieren Sie es hier online aus.
3 Bytes gespart dank Martin Büttner.
quelle
.
anstelle von verwenden\+
, da dies das einzige Zeichen ist, das vor oder nach einem Großbuchstaben zulässig istI
.JavaScript (ES6), 130 Byte
Erläuterung
Prüfung
Code-Snippet anzeigen
quelle
Perl 5, 67 Bytes
Eigentlich 79 Bytes, aber es gibt einen 15% Bonus.
quelle
Python
159153 BytesBEARBEITEN : Danke @ Pietu1998
Dies ist eine direkte Übersetzung der Javascript ES6 Antwort:
Probieren Sie es hier aus
quelle
s
Es muss keine Variable sein, und Sie können die zusätzlichen Zeilen und Leerzeichen zwischenfor
und entfernenr=
. Vielleicht möchten Sie auch prüfen, ob dies als Funktion kürzer sein könnte.Ruby,
150136131119111 BytesBonus-Funktion: Behandelt mehrere Ausdrücke in derselben Befehlszeile.
quelle