Розглянемо рядок довжиною N, наприклад, Peanut Butterз N = 13. Зауважте, що в рядку є пари N-1 пар сусідніх символів. Бо Peanut Butterперша з 12 пар є Pe, друга - eaостання er.
Коли пари в основному різні символи, рядок має кучеряву якість, наприклад chUnky.
Коли ці пари здебільшого одного і того ж символу, струна має рівну якість, наприклад sssmmsss.
Визначте чіткість рядка до відношення кількості пар з двома різними символами до загальної кількості пар (N-1).
Визначте гладкість рядка як відношення кількості пар з двома однаковими символами до загальної кількості пар (N-1).
Наприклад, є Peanut Butterлише одна пара з однаковими символами ( tt), тому її гладкість становить 1/12 або 0,0833, а її чіткість - 11/12 або 0,9167.
Порожні рядки та рядки, що містять лише один символ, визначаються як 100% гладкі та 0% чіткі.
Виклик
Напишіть програму, яка приймає рядок довільної довжини і виводить або її коефіцієнт чіткості або плавності як значення з плаваючою комою.
- Візьміть вхід через stdin або командний рядок, або ви можете написати функцію, яка займає рядок.
- Ви можете припустити, що вхідний рядок містить лише символи ASCII для друку (а значить, однорядковий).
- Надрукуйте поплавок на stdout до 4 або більше знаків після коми, або ви можете повернути його, якщо ви написали функцію. Десяткові місця, які не містять жодної інформації, не потрібні, наприклад,
0це нормально замість0.0000. - Вибирайте смаку або гладкість, як вам зручніше. Просто не забудьте сказати, яку саме програму випускає.
Виграє найкоротший код у байтах.
Приклади
Peanut Butter→ Chunkiness: 0.91666666666Гладкість: 0.08333333333
chUnky→ Chunkiness: 1.0Гладкість: 0.0
sssmmsss→ Chunkiness: 0.28571428571Гладкість: 0.71428571428
999→ Chunkiness: 0.0Гладкість: 1.0
AA→ Chunkiness: 0.0Гладкість: 1.0
Aa→ Chunkiness: 1.0Гладкість: 0.0
!→ Chunkiness: 0.0Гладкість: 1.0
[порожній рядок] → Chunkiness: 0.0, Плавність:1.0
Питання про бонус: якому ви віддаєте перевагу , чіткі або гладкі струни ?