Rozważ ciąg długości N, taki jak Peanut ButterN = 13. Zauważ, że w ciągu znajduje się para N-1 sąsiadujących znaków. Bo Peanut Butterpierwsza z 12 par to Pedruga to eaostatniaer .
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 Butterma 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.
0Jest 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.91666666666Gładkość: 0.08333333333
chUnky→ Masywność:, 1.0Gładkość: 0.0
sssmmsss→ Masywność:, 0.28571428571Gł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 ?