Máximo número de consecutivos iguales al dado
Definir la función
1 |
maximoConsecutivosIguales :: Eq a => a -> [a] -> Int |
tal que (maximoConsecutivosIguales x xs) es el mayor número de elementos consecutivos en xs iguales a x. Por ejemplo,
1 2 3 |
maximoConsecutivosIguales 'b' "abbcccbbbd" == 3 maximoConsecutivosIguales 'b' "abbbbcccbbbd" == 4 maximoConsecutivosIguales 'e' "abbcccbbbd" == 0 |
Soluciones
1 2 3 4 5 6 7 8 |
import Data.List (group) maximoConsecutivosIguales :: Eq a => a -> [a] -> Int maximoConsecutivosIguales x = maximum . (0:) . map length . filter ((== x) . head) . group |
Otras soluciones
- Se pueden escribir otras soluciones en los comentarios.
- El código se debe escribir entre una línea con <pre lang=»haskell»> y otra con </pre>
Pensamiento
«La programación de computadoras es un arte, porque aplica el conocimiento
acumulado al mundo, porque requiere habilidad e ingenio, y especialmente
porque produce belleza. Un programador que subconscientemente se ve
a sí mismo como un artista disfrutará con lo que hace y lo hará mejor.»
No sé si es válida porque he cambiado «Eq a => a -> [a] -> Int» por «Ord a => a -> [a] -> Int».