Rozważ ciąg długości N, taki jak Peanut Butter
N = 13. Zauważ, że w ciągu znajduje się para N-1 sąsiadujących znaków. Bo Peanut Butter
pierwsza z 12 par to Pe
druga to ea
ostatniaer
.
Gdy pary są w większości różnymi znakami, ciąg ma masywną jakość, np chUnky
.
Gdy te pary są w większości tego samego znaku, łańcuch ma gładką jakość, npsssmmsss
.
Zdefiniuj masywność łańcucha jako stosunek liczby par z dwoma różnymi znakami do łącznej liczby par (N-1).
Określ gładkość łańcucha jako stosunek liczby par o dwóch identycznych znakach do całkowitej liczby par (N-1).
Na przykład, Peanut Butter
ma tylko jedną parę z identycznymi znakami ( tt
), więc jego gładkość wynosi 1/12 lub 0,0833, a jej bryła to 11/12 lub 0,9167.
Puste łańcuchy i łańcuchy zawierające tylko jeden znak są zdefiniowane jako 100% gładkie i 0% masywne.
Wyzwanie
Napisz program, który pobiera ciąg o dowolnej długości i wyświetla jako wynik zmiennoprzecinkowy albo jego kruchość, albo współczynnik gładkości.
- Weź dane wejściowe za pomocą stdin lub wiersza poleceń, albo możesz napisać funkcję, która pobiera ciąg.
- Możesz założyć, że ciąg wejściowy zawiera tylko drukowalne znaki ASCII (a zatem jest jednowierszowy).
- Wydrukuj zmiennoprzecinkowe na stdout do 4 lub więcej miejsc po przecinku, lub możesz zwrócić go, jeśli napisałeś funkcję. Miejsca dziesiętne, które nie przekazują żadnych informacji, nie są wymagane, np.
0
Jest w porządku zamiast0.0000
. - Wybierz masywność lub gładkość według własnego uznania. Pamiętaj tylko, aby powiedzieć, który program generuje.
Najkrótszy kod w bajtach wygrywa.
Przykłady
Peanut Butter
→ Masywność:, 0.91666666666
Gładkość: 0.08333333333
chUnky
→ Masywność:, 1.0
Gładkość: 0.0
sssmmsss
→ Masywność:, 0.28571428571
Gładkość:0.71428571428
999
→ Chunkiness: 0.0
, gładkość: 1.0
AA
→ Chunkiness: 0.0
, gładkość: 1.0
Aa
→ Chunkiness: 1.0
, gładkość: 0.0
!
→ Chunkiness: 0.0
, gładkość: 1.0
[pusty łańcuch] → Chunkiness: 0.0
, Gładkość:1.0
Dodatkowe pytanie: które preferujesz , grube lub gładkie sznurki ?