От въведен низ от клавиатурата да се намери най-често срещаният символ и да се изведе низа по честота на срещане на символите. При еднакъв брой срещания няма значение кой символ да се изведе предварително.
Например: От низ – “ммпкдсррттмвввпмм”, най-често срещаният символ е “м”.
Низа да се изведе: “мммммвввррттппкдс”
Кратко решение на PHP, защото само това имам инсталирано в момента:
<?php $string = 'tabdaderdty'; $counter = array_fill(0, 255, 0); for ($i = 0; $i < strlen($string); $i++) { $counter[ord($string[$i])]++; } arsort($counter); echo $string.PHP_EOL; foreach($counter as $k => $v){ if ($v == 0) { break; } echo str_repeat(chr($k), $v); } echo PHP_EOL; ?>
Принципът е следния:
Създаваме масив с 255 елемента и стойности 0 за всеки един елемент. След това обхождаме символния низ и увеличаваме стойността на брояча за всеки срещнат масив (индекса на масива е ASCII стойността на символа). След това сортираме низходящо масива с броячите и показваме по n елемента за всяко n > 0.
$php redica.php tabdaderdty dddttaaebyr
Няма коментари:
Публикуване на коментар