Posiciones de las mayúsculas
Definir la función
1 |
posicionesMayusculas :: String -> [Int] |
tal que (posicionesMayusculas cs) es la lista de las posiciones de las mayúsculas de la cadena cs. Por ejemplo,
1 2 3 4 5 |
posicionesMayusculas "SeViLLa" == [0,2,4,5] posicionesMayusculas "aAbB" == [1,3] posicionesMayusculas "ABCDEF" == [0,1,2,3,4,5] posicionesMayusculas "4ysdf4" == [] posicionesMayusculas "" == [] |
Soluciones
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
import Data.Char (isUpper) import Data.List (findIndices) -- 1ª solución posicionesMayusculas :: String -> [Int] posicionesMayusculas xs = [n | (n,x) <- zip [0..] xs, isUpper x] -- 2ª solución posicionesMayusculas2 :: String -> [Int] posicionesMayusculas2 = aux 0 [] where aux n ns [] = reverse ns aux n ns (y:ys) | isUpper y = aux (n+1) (n:ns) ys | otherwise = aux (n+1) ns ys -- 3ª solución posicionesMayusculas3 :: String -> [Int] posicionesMayusculas3 = findIndices isUpper |
4 Comentarios