Caracteres en la misma posición que en el alfabeto
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
1 |
nBienColocados :: String -> Int |
tal que (nBienColocados cs) es el número de elementos bien colocados de la cadena cs. Por ejemplo,
1 2 |
nBienColocados "aBaCEria" == 3 nBienColocados "xBxxExxxIxxxxNxxxxxTxxxXYZ" == 8 |
Soluciones
1 2 3 4 5 6 7 8 9 |
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 Comentarios