Un carácter c de una cadena cs está bien colocado si la posición de c en cs es la misma que en el abecedario (sin distinguir entre mayúsculas y minúsculas). Por ejemplo, los elementos bien colocados de la cadena «aBaCEria» son ‘a’, ‘B’ y ‘E’.
Definir la función
nBienColocados :: String -> Int |
tal que (nBienColocados cs) es el número de elementos bien colocados de la cadena cs. Por ejemplo,
nBienColocados "aBaCEria" == 3 nBienColocados "xBxxExxxIxxxxNxxxxxTxxxXYZ" == 8 |
Soluciones
import Data.Char (toLower) nBienColocados :: String -> Int nBienColocados = length . bienColocados bienColocados :: String -> [Char] bienColocados cs = [c | (c,d) <- zip (map toLower cs) ['a'..'z'] , c == d] |
Referencias
Basado en el problema Count characters at same position as in English alphabets de Sahil Chhabra en GeeksforGeeks.
5 Comments