Betrachten Sie eine Zeichenfolge der Länge N, wie z Peanut Butter
mit N = 13. Beachten Sie, dass die Zeichenfolge N-1 Paare benachbarter Zeichen enthält. Denn Peanut Butter
das erste der 12 Paare ist Pe
, das zweite ist ea
, das letzte ister
.
Wenn es sich bei den Paaren hauptsächlich um verschiedene Zeichen handelt, hat die Zeichenfolge eine klobige Qualität, z chUnky
.
Wenn diese Paare zumeist dasselbe Zeichen sind, hat die Zeichenfolge eine glatte Qualität, zsssmmsss
.
Definiere das Klumpigkeit eines Strings als das Verhältnis der Anzahl der Paare mit zwei verschiedenen Zeichen zur Gesamtzahl der Paare (N-1).
Definiere das Glätte einer Zeichenfolge als Verhältnis der Anzahl der Paare mit zwei identischen Zeichen zur Gesamtzahl der Paare (N-1).
Beispielsweise, Peanut Butter
tt
Hat nur ein Paar mit identischen Zeichen ( ), so beträgt seine Glätte 1/12 oder 0,0833 und seine Klumpigkeit 11/12 oder 0,9167.
Leere Zeichenfolgen und Zeichenfolgen mit nur einem Zeichen werden als 100% glatt und 0% klobig definiert.
Herausforderung
Schreiben Sie ein Programm, das eine Zeichenfolge beliebiger Länge verwendet und entweder das Chunkiness- oder das Smoothness-Verhältnis als Gleitkommawert ausgibt.
- Nehmen Sie die Eingabe über stdin oder die Befehlszeile vor, oder schreiben Sie eine Funktion, die eine Zeichenfolge akzeptiert.
- Sie können davon ausgehen, dass die Eingabezeichenfolge nur druckbare ASCII- Zeichen enthält (und daher einzeilig ist).
- Geben Sie den Gleitkommawert auf 4 oder mehr Dezimalstellen aus, oder geben Sie ihn zurück, wenn Sie eine Funktion geschrieben haben. Nachkommastellen, die keine Informationen übermitteln, sind nicht erforderlich, z. B.
0
ist in Ordnung statt0.0000
. - Wählen Sie nach Belieben Chunkiness oder Smoothness. Stellen Sie nur sicher, welches Ihr Programm ausgibt.
Der kürzeste Code in Bytes gewinnt.
Beispiele
Peanut Butter
Chunkiness →: 0.91666666666
, Glätte: 0.08333333333
chUnky
→ chunkiness: 1.0
, Glätte: 0.0
sssmmsss
→ chunkiness: 0.28571428571
, Glätte: 0.71428571428
999
→ chunkiness: 0.0
, Glätte: 1.0
AA
→ chunkiness: 0.0
, Glätte: 1.0
Aa
→ chunkiness: 1.0
, Glätte: 0.0
!
→ chunkiness: 0.0
, Glätte: 1.0
[empty string] → chunkiness: 0.0
, Glätte:1.0
Bonusfrage: Welche bevorzugen Sie , klobige oder glatte Saiten ?