| Copyright | Exercitium (11-05-14) |
|---|---|
| License | GPL-3 |
| Maintainer | JoseA.Alonso@gmail.com |
| Safe Haskell | Safe |
| Language | Haskell2010 |
Elimina_unitarias
Description
Eliminación de las ocurrencias unitarias
Definir la función
eliminaUnitarias :: Char -> String -> String
tal que (eliminaUnitarias c cs) es la lista obtenida eliminando de la cadena cs las ocurrencias unitarias del carácter c (es decir, aquellas ocurrencias de c tales que su elemento anterior y posterior es distinto de c). Por ejemplo,
>>>eliminaUnitarias 'X' """">>>eliminaUnitarias 'X' "X""">>>eliminaUnitarias 'X' "XX""XX">>>eliminaUnitarias 'X' "XXX""XXX">>>eliminaUnitarias 'X' "abcd""abcd">>>eliminaUnitarias 'X' "Xabcd""abcd">>>eliminaUnitarias 'X' "XXabcd""XXabcd">>>eliminaUnitarias 'X' "XXXabcd""XXXabcd">>>eliminaUnitarias 'X' "abcdX""abcd">>>eliminaUnitarias 'X' "abcdXX""abcdXX">>>eliminaUnitarias 'X' "abcdXXX""abcdXXX">>>eliminaUnitarias 'X' "abXcd""abcd">>>eliminaUnitarias 'X' "abXXcd""abXXcd">>>eliminaUnitarias 'X' "abXXXcd""abXXXcd">>>eliminaUnitarias 'X' "XabXcdX""abcd">>>eliminaUnitarias 'X' "XXabXXcdXX""XXabXXcdXX">>>eliminaUnitarias 'X' "XXXabXXXcdXXX""XXXabXXXcdXXX">>>eliminaUnitarias 'X' "XabXXcdXeXXXfXx""abXXcdeXXXfx"
- eliminaUnitarias :: Char -> String -> String
- eliminaUnitarias2 :: Char -> String -> String
- eliminaUnitarias3 :: Char -> String -> String
- eliminaUnitarias4 :: Char -> String -> String
- eliminaUnitarias5 :: Char -> String -> String
- eliminaUnitarias6 :: Char -> String -> String
- prop_equiv_eliminaUnitarias :: Char -> String -> Bool
- verifica_equiv_eliminaUnitarias :: IO ()
Documentation
prop_equiv_eliminaUnitarias :: Char -> String -> Bool Source #
(prop_equiv_eliminaUnitarias c cs) se verifica si las definiciones de eliminaUnitarias son equivalentes sobre c y cs. Por ejemplo,
>>>prop_equiv_eliminaUnitarias 'X' "XabXXcdXeXXXfXx"True
verifica_equiv_eliminaUnitarias :: IO () Source #
Comprueba la equivalencia de las definiciones de
eliminaUnitarias.
>>>verifica_equiv_eliminaUnitarias+++ OK, passed 100 tests.
Comparación de eficiencia
> length (eliminaUnitarias5 '3' (show (2^100000))) 27599 (2.13 secs, 15,602,672 bytes) > length (eliminaUnitarias '3' (show (2^100000))) 27599 (0.02 secs, 14,934,296 bytes)
> length (eliminaUnitarias '3' (show (2^10000000))) 2766278 (1.94 secs, 1,465,644,920 bytes) > length (eliminaUnitarias2 '3' (show (2^10000000))) 2766278 (1.40 secs, 1,231,149,824 bytes) > length (eliminaUnitarias3 '3' (show (2^10000000))) 2766278 (1.69 secs, 918,640,064 bytes) > length (eliminaUnitarias4 '3' (show (2^10000000))) 2766278 (2.03 secs, 797,135,176 bytes) > length (eliminaUnitarias6 '3' (show (2^10000000))) 2766278 (1.52 secs, 938,221,096 bytes)