Ordenación por frecuencia
Definir la función
1 |
ordPorFrecuencia :: Ord a => [a] -> [a] |
tal que (ordPorFrecuencia xs) es la lista obtenidas ordenando los elementos de xs por su frecuencia, de los que aparecen menos a los que aparecen más. Por ejemplo,
1 2 |
ordPorFrecuencia "canalDePanama" == "DPcelmnnaaaaa" ordPorFrecuencia "20012016" == "61122000" |
Soluciones
1 2 3 4 5 |
import Data.List (group, sort) ordPorFrecuencia :: Ord a => [a] -> [a] ordPorFrecuencia xs = concatMap snd (sort [(length xs,xs) | xs <- group (sort xs)]) |
5 Comentarios