{"id":5687,"date":"2020-03-17T07:59:56","date_gmt":"2020-03-17T05:59:56","guid":{"rendered":"http:\/\/www.glc.us.es\/~jalonso\/exercitium\/?p=5687"},"modified":"2020-03-24T08:27:40","modified_gmt":"2020-03-24T06:27:40","slug":"repeticiones-consecutivas","status":"publish","type":"post","link":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/repeticiones-consecutivas\/","title":{"rendered":"Repeticiones consecutivas"},"content":{"rendered":"<p>Se dice que una palabra tiene una repetici\u00f3n en una frase  si es igual a una, o m\u00e1s, de las palabras consecutivas sin distinguir may\u00fasculas de min\u00fasculas.<\/p>\n<p>Definir la funci\u00f3n<\/p>\n<pre lang=\"text\">\n   nRepeticionesConsecutivas :: String ->Int\n<\/pre>\n<p>tal que (nRepeticionesConsecutivas cs) es el n\u00famero de repeticiones de palabras consecutivas de la cadena cs. Por ejemplo,<\/p>\n<pre lang=\"text\">\n   nRepeticionesConsecutivas \"oso rana\"                    == 0      \n   nRepeticionesConsecutivas \"oso rana oso\"                == 0\n   nRepeticionesConsecutivas \"oso oSo rana\"                == 1\n   nRepeticionesConsecutivas \"oso oso oso rana\"            == 1\n   nRepeticionesConsecutivas \"coronavirus virus oso rana\"  == 0\n   nRepeticionesConsecutivas \"virus     virus oso rana\"    == 1\n   nRepeticionesConsecutivas \"virus oso virus oso rana\"    == 0\n   nRepeticionesConsecutivas \"oso oso oso oso oso oso\"     == 1\n   nRepeticionesConsecutivas \"oso oso oso oso rana rana\"   == 2\n   nRepeticionesConsecutivas \"rana rana oso oso rana rana\" == 3\n<\/pre>\n<h4>Soluciones<\/h4>\n<pre lang=\"haskell\">\nimport Data.List (group)\nimport Data.Char (toUpper)\n\n-- 1\u00aa soluci\u00f3n\nnRepeticionesConsecutivas :: String ->Int\nnRepeticionesConsecutivas = aux . words . map toUpper \n  where aux (x:y:zs) | x == y    = 1 + aux (dropWhile (== x) zs)\n                     | otherwise = aux (y:zs)\n        aux _ = 0\n\n-- 2\u00aa soluci\u00f3n\nnRepeticionesConsecutivas2 :: String ->Int\nnRepeticionesConsecutivas2 cs =\n  length [xs | xs <- group (words (map toUpper cs)), length xs > 1]\n\n-- 3\u00aa soluci\u00f3n\nnRepeticionesConsecutivas3 :: String ->Int\nnRepeticionesConsecutivas3 =\n  length . filter ((>1) . length) . group . words . map toUpper\n<\/pre>\n<h4>Otras soluciones<\/h4>\n<ul>\n<li>Se pueden escribir otras soluciones en los comentarios.\n<li>El c\u00f3digo se debe escribir entre una l\u00ednea con &#60;pre lang=&quot;haskell&quot;&#62; y otra con &#60;\/pre&#62;\n<\/ul>\n<h4>Pensamiento<\/h4>\n<blockquote><p>\n\u00abEn el campo de la computaci\u00f3n, el momento de la verdad es la ejecuci\u00f3n de un programa; todo lo dem\u00e1s es profec\u00eda.\u00bb <\/p>\n<p><a href=\"https:\/\/en.wikipedia.org\/wiki\/Herbert_A._Simon\">Herbert A. Simon<\/a>.\n<\/p><\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>Se dice que una palabra tiene una repetici\u00f3n en una frase si es igual a una, o m\u00e1s, de las palabras consecutivas sin distinguir may\u00fasculas de min\u00fasculas. Definir la funci\u00f3n nRepeticionesConsecutivas :: String ->Int tal que (nRepeticionesConsecutivas cs) es el n\u00famero de repeticiones de palabras consecutivas de la cadena cs. Por ejemplo, nRepeticionesConsecutivas \u00aboso rana\u00bb&#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":[5],"tags":[8,38,13,28,10,11,137,132],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5687"}],"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=5687"}],"version-history":[{"count":5,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5687\/revisions"}],"predecessor-version":[{"id":5727,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/posts\/5687\/revisions\/5727"}],"wp:attachment":[{"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/media?parent=5687"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/categories?post=5687"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.glc.us.es\/~jalonso\/exercitium\/wp-json\/wp\/v2\/tags?post=5687"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}