Erstellen Sie ein Programm, das die Gesamtzahl der Buchstaben zählt, die zwei Namen gemeinsam haben, und das Produkt ihrer Länge findet, um als "Liebestester" zu fungieren.
Bedingungen: Möglicherweise erhalten Sie keine 1: 1-Antwort (3 von 3 usw.).
Eingang
Zwei Namen von STDIN oder nächstgelegene Alternative.
Ausgabe
Berechnen Sie x
die Gesamtzahl der Buchstaben, die den beiden Namen gemeinsam sind, ohne Berücksichtigung der Groß- und Kleinschreibung. Berechnen Sie y
als Produkt der Länge der Namen. Dann ist die Ausgabe an STDOUT oder die nächstgelegene Alternative
Name1 and Name2 have x out of y chances of love.
Beispiele
Eingang:
Wesley
Polly
Ausgabe:
Wesley and Polly have 2 out of 30 chances of love.
Wesley und Polly haben zwei Buchstaben gemeinsam, y
und l
das Produkt ihrer Länge ist 6 * 5 = 30.
Eingang:
Bill
Jill
Ausgabe:
Bill and Jill have 3 out of 16 chances of love.
Boni
- Subtrahieren Sie 30 Bytes für die Verwendung vereinfachter Brüche, dh
x out of y
in vollständig reduzierter Form.
Bestenliste:
Das Ranking wird nach Sprachen festgelegt. Der Code Golf endet am 17. Oktober um 22.20 Uhr Pacific Daylight Time (Kalifornien)
Repräsentantenpreise
- Sie erhalten 10 Wiederholungen (eine positive Bewertung), wenn Sie unter den Top 5 sind (außer auf dem ersten Platz).
- Sie erhalten 15 Wiederholungen (akzeptierte Teilnahme) als ersten Platz.
- Sie können auch eine Kopfgeldbelohnung von einer anderen Person erhalten.
Hier ist ein Stack-Snippet, mit dem Sie sowohl eine reguläre Rangliste als auch eine Übersicht der Gewinner nach Sprache erstellen können. **
Um sicherzustellen, dass Ihre Antwort angezeigt wird, beginnen Sie Ihre Antwort mit einer Überschrift unter Verwendung der folgenden Markdown-Vorlage:
# Language Name, N bytes
Wo N
ist die Größe Ihrer Einreichung? Wenn Sie Ihren Score zu verbessern, Sie können alte Rechnungen in der Überschrift halten, indem man sich durch das Anschlagen. Zum Beispiel:
# Ruby, <s>104</s> <s>101</s> 96 bytes
** Stapelausschnitt aus Sign That Word von Kslkgh
Herzlichen Glückwunsch an:
- Gewinner Dennis (Pyth)
- Dennis (CJam)
- NBZ (APL)
- molarmanful (JavaScript ES6)
- Alex A. (Julia)
Aaron\nAhmad
? Odersamename\nsamename
?a
undb
von einigen Buchstaben, tut diese Anzahl fürmin(a,b)
Wiederholungen?Antworten:
Pyth, 40 Bytes
Der Code ist 70 Byte lang und qualifiziert sich für den Bonus von -30 Byte .
Probieren Sie es online aus.
quelle
Dyalog APL ,
9491-30 = 61 BytesNormalerweise führt APL-Golf zu Code, der kompakter - aber nicht komplexer - als normal ist, aber in diesem Fall speichere ich Zeichen auf hässliche Weise:
,⍪'out of' 'chances of'
schafft eine 2 × 2 - Tabelle von Zahlen (links) und Texten (rechts)×/≢¨⍵
Produkt der Längen32|⎕UCS¨⍵
harmonisieren Groß- und Klein UCS - Werte≢⊃∩/
den Schnittpunkt der beiden Sätze tally⊢÷∨/
die tally und das Produkt mit ihrem GCD dividieren,' love.',⍨∊
macht es in eine einfache Liste und append Liebe.⍵,⍪'and' 'have'
Erstellen Sie eine 2 × 2-Tabelle mit Namen (links) und Texten (rechts),∊' ',¨
indem Sie jeder Tabellenzelle ein Leerzeichen voranstellen und dann1↓
das anfängliche überflüssige Leerzeichen in eine einfache Liste einfügenDanke an ngn für -3 Bytes.
quelle
'Wesley' 'Polly'
. Wenn Sie der Meinung sind, dass dies fairer wäre, können Sie⎕
(U + 2395) bis zum Ende der Zeile (nach dem}
) anhängen und die Punktzahl auf 65 anpassen.Javascript ES6, 123 Bytes
Soviel zu "Liebe" ... ich könnte wirklich mit weniger Bytes fertig werden.
Führen Sie das Code-Snippet in Firefox aus.
Code-Snippet anzeigen
quelle
Julia, 129 Bytes
Der Code ist 159 Byte, qualifiziert sich jedoch für den -30-Bonus.
Dies könnte wahrscheinlich verkürzt werden, wenn man nicht auf den Bonus setzt, aber ich wollte Julias rationalen Zahlentyp vorführen. :) :)
Ungolfed:
Die
Rational()
Funktion erstellt ein Objekt vom TypRational
mit Feldernnum
undden
entsprechend dem Zähler bzw. Nenner. Der Vorteil der Verwendung dieses Typs besteht darin, dass Julia die Reduzierung für uns vornimmt. Wir müssen uns nicht darum kümmern, den Anteil selbst zu reduzieren.quelle
CJam, 55 Bytes
Der Code ist 85 Byte lang und qualifiziert sich für den Bonus von -30 Byte .
Probieren Sie es online im CJam-Interpreter aus .
Wie es funktioniert
quelle
Dyalog APL, 84-30 = 54 Bytes
∊' and ' ' have' 'out of' 'chances of love.',¨⍨⊢,{+/⌊⌿+⌿↑1↑¨⍨-32|⍉⎕ucs↑⍵}(,÷∨)(×/≢¨)
Dies ist ein Zug , inspiriert von Adáms Antwort .
×/≢¨
Produkt der Längen{+/⌊⌿+⌿↑1↑¨⍨-32|⍉⎕ucs↑⍵}
Chancen der Liebe(,÷v)
die Verkettung geteilt durch die GCD; zwischen den beiden obigen Ausdrücken reduziert dies den Bruch⊢,
Stellen Sie die Namen voran,¨⍨
mischt die Zeichenfolgen links mit den Werten rechts∊
ebnenBerechnung "Chancen der Liebe" im Detail:
{+/⌊⌿+⌿↑1↑¨⍨-32|⍉⎕ucs↑⍵} ↑⍵ arrange the names in a 2×N matrix, pad with spaces ⎕ucs take ascii codes ⍉ transpose the matrix as N×2 32| modulo 32 to case-fold 1↑¨⍨- for each X create a vector 0 0...0 1 of length X ↑ arrange into a 3d array, pad with 0s +⌿ 1st axis sum, obtain freqs per letter and per name ⌊⌿ 1st axis min, obt. nr of common occurrences per letter +/ sum
test , test2
quelle
Java 8, 192 Bytes
Ex:
quelle
Ruby, 153 Bytes
Länger als ich erwartet hatte. Ich weiß nicht, ob der 30-Byte-Bonus dafür gilt.
quelle
Python 2.7, 161 Bytes
Testen Sie es hier: http://ideone.com/jeoVgV
Und hier ist eine Version, die den Bruch vereinfacht:
Leider ist diese Punktzahl 219-30 = 189 ...
quelle