{"id":1722,"date":"2015-11-16T06:00:16","date_gmt":"2015-11-16T04:00:16","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=1722"},"modified":"2022-03-26T12:13:06","modified_gmt":"2022-03-26T10:13:06","slug":"digitos-visibles-y-ocultos","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/digitos-visibles-y-ocultos\/","title":{"rendered":"D\u00edgitos visibles y ocultos"},"content":{"rendered":"<p>Una cadena clave es una cadena que contiene d\u00edgitos visibles y ocultos. Los d\u00edgitos se ocultan mediante las primeras letras min\u00fasculas: la &#8216;a&#8217; oculta el &#8216;0&#8217;, la &#8216;b&#8217; el &#8216;1&#8217; y as\u00ed sucesivamente hasta la &#8216;j&#8217; que oculta el &#8216;9&#8217;. Los restantes s\u00edmbolos de la cadena no tienen significado y se pueden ignorar.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   numeroOculto :: String -> Maybe Integer\n<\/pre>\n<p>tal que (numeroOculto cs) es justo el n\u00famero formado por los d\u00edgitos visibles u ocultos de la cadena clave cs, si cs tiene d\u00edgitos y Nothing en caso contrario. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   numeroOculto \"jihgfedcba\"            ==  Just 9876543210\n   numeroOculto \"JIHGFEDCBA\"            ==  Nothing\n   numeroOculto \"el 23 de Enero\"        ==  Just 423344\n   numeroOculto \"El 23 de Enero\"        ==  Just 23344\n   numeroOculto \"El 23 de enero\"        ==  Just 233444\n   numeroOculto \"Todo para nada\"        ==  Just 300030\n   numeroOculto (replicate (10^6) 'A')  ==  Nothing\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.Char (isDigit, ord, chr)\n\nnumeroOculto :: String -> Maybe Integer\nnumeroOculto cs | null aux  = Nothing\n                | otherwise = Just (read aux)\n    where aux = filter isDigit (map visible cs)\n\nvisible :: Char -> Char\nvisible c | c `elem` ['a'..'j'] = chr (ord c - n)\n          | otherwise           = c\n          where n = ord 'a' - ord '0'\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Una cadena clave es una cadena que contiene d\u00edgitos visibles y ocultos. Los d\u00edgitos se ocultan mediante las primeras letras min\u00fasculas: la &#8216;a&#8217; oculta el &#8216;0&#8217;, la &#8216;b&#8217; el &#8216;1&#8217; y as\u00ed sucesivamente hasta la &#8216;j&#8217; que oculta el &#8216;9&#8217;. Los restantes s\u00edmbolos de la cadena no tienen significado y se pueden ignorar. Definir la&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"jetpack_post_was_ever_published":false,"_kad_post_transparent":"","_kad_post_title":"","_kad_post_layout":"","_kad_post_sidebar_id":"","_kad_post_content_style":"","_kad_post_vertical_padding":"","_kad_post_feature":"","_kad_post_feature_position":"","_kad_post_header":false,"_kad_post_footer":false,"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"footnotes":"","_jetpack_memberships_contains_paid_content":false},"categories":[4],"tags":[35,300,500,26,38,101,10,141,341,11,95],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1722"}],"collection":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/comments?post=1722"}],"version-history":[{"count":4,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1722\/revisions"}],"predecessor-version":[{"id":1757,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/1722\/revisions\/1757"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=1722"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=1722"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=1722"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}