{"id":1311,"date":"2022-04-29T10:27:38","date_gmt":"2022-04-29T13:27:38","guid":{"rendered":"http:\/\/www.galirows.com.br\/meublog\/programacao\/?p=1311"},"modified":"2022-04-29T10:40:52","modified_gmt":"2022-04-29T13:40:52","slug":"ajuda-com-interpretacao-de-solucao","status":"publish","type":"post","link":"http:\/\/www.galirows.com.br\/meublog\/programacao\/ajuda-com-interpretacao-de-solucao\/","title":{"rendered":"Ajuda com interpreta\u00e7\u00e3o de solu\u00e7\u00e3o"},"content":{"rendered":"\n<p>Essa ajuda para interpretar uma forma de resolver um problema foi enviada por Gilvan Melo.<\/p>\n\n\n\n<p>A ajuda \u00e9 em rela\u00e7\u00e3o ao seguinte enunciado: escreva uma fun\u00e7\u00e3o que encontre todas as permuta\u00e7\u00f5es de tamanho 2 (dois caracteres) de uma string, conforme:<\/p>\n\n\n\n<p><em>permuta\u00e7\u00e3o(str: String): string[]<\/em><\/p>\n\n\n\n<p><em>exemplo: permuta\u00e7\u00e3o(&#8216;abc&#8217;) =&gt; [&#8216;ab&#8217;, &#8216;ac&#8217;, &#8216;bc&#8217;, &#8216;ba&#8217;, &#8216;ca&#8217;, &#8216;cb&#8217;]<\/em><\/p>\n\n\n\n<p>Uma string nada mais e do que um cadeia\/vetor de caracteres. Ou seja, a entrada pode ser vista como:<\/p>\n\n\n\n<figure class=\"wp-block-table aligncenter\"><table><tbody><tr><td>A<\/td><td>B<\/td><td>C<\/td><td>D<\/td><\/tr><tr><td><sub>0<\/sub><\/td><td><sub>1<\/sub><\/td><td><sub>2<\/sub><\/td><td><sub>3<\/sub><\/td><\/tr><\/tbody><\/table><figcaption>String ABCD de 4 letras<\/figcaption><\/figure>\n\n\n\n<p>Na tabela mostre uma string com quatro letras e tamb\u00e9m j\u00e1 mostrei na linha de baixo o valor de cada \u00edndice do vetor.<\/p>\n\n\n\n<p>Para a permuta\u00e7\u00e3o ser\u00e1 necess\u00e1rio pegar cada letra e concatenar com as demais. Veja no exemplo que a letra nunca concatena com ela mesmo, mas pelo conceito de permuta\u00e7\u00e3o poderia ocorrer se a letra aparecer mais de uma vez (isso facilita o algoritmo pois n\u00e3o \u00e9 preciso controlar essa quest\u00e3o). Veja tamb\u00e9m que a permuta\u00e7\u00e3o aceita &#8220;ab&#8221; e tamb\u00e9m &#8220;ba&#8221;.<\/p>\n\n\n\n<p>Sendo assim, o algoritmo precisa pegar uma letra em um \u00edndice do vetor e concatenar com todos as letras nos demais \u00edndices do vetor. A dificuldade aqui normalmente envolve a necessidade ter um la\u00e7o de repeti\u00e7\u00e3o <em>for <\/em>dentro de outro, para pegar um letra e percorrer todas as demais. <\/p>\n\n\n\n<p>Ilustrando pelo valor dos \u00edndices, ser\u00e1 necess\u00e1rio concatenar as letras de dos seguintes pares de \u00edndices: (0,1), (0,2), (0,3), depois (1,0), (1,2), (1,3) e assim por diante. <\/p>\n\n\n\n<p>Uma d\u00favida indicada pelo Gilvan foi &#8220;como farei para imprimir a permuta\u00e7\u00e3o de tamanho 2 sendo que est\u00e1 em tamanho 3&#8221;. Nesse caso, veja que o tamanho da string de entrada n\u00e3o importa, embora seja necess\u00e1rio obter o tamanho dela para determinar a condi\u00e7\u00e3o de parada para os la\u00e7os <em>for<\/em>. Toda linguagem de programa\u00e7\u00e3o possui uma fun\u00e7\u00e3o para obter o tamanho de uma string, sendo que em <strong>C<\/strong> essa fun\u00e7\u00e3o \u00e9 a <em>strlen()<\/em>.<\/p>\n\n\n\n<p>Para concatenar letras\/strings, cada linguagem de programa\u00e7\u00e3o possui tamb\u00e9m formas de fazer isso. Na linguagem <strong>C<\/strong> essa fun\u00e7\u00e3o \u00e9 a <em>strcat()<\/em>.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Essa ajuda para interpretar uma forma de resolver um problema foi enviada por Gilvan Melo. A ajuda \u00e9 em rela\u00e7\u00e3o ao seguinte enunciado: escreva uma fun\u00e7\u00e3o que encontre todas as permuta\u00e7\u00f5es de tamanho 2 (dois caracteres) de uma string, conforme: permuta\u00e7\u00e3o(str: String): string[] exemplo: permuta\u00e7\u00e3o(&#8216;abc&#8217;) =&gt; [&#8216;ab&#8217;, &#8216;ac&#8217;, &#8216;bc&#8217;, &#8216;ba&#8217;, &#8216;ca&#8217;, &#8216;cb&#8217;] Uma string nada [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"footnotes":""},"categories":[5],"tags":[],"class_list":["post-1311","post","type-post","status-publish","format-standard","hentry","category-python"],"aioseo_notices":[],"amp_enabled":true,"_links":{"self":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/1311","targetHints":{"allow":["GET"]}}],"collection":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/comments?post=1311"}],"version-history":[{"count":3,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/1311\/revisions"}],"predecessor-version":[{"id":1316,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/posts\/1311\/revisions\/1316"}],"wp:attachment":[{"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/media?parent=1311"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/categories?post=1311"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.galirows.com.br\/meublog\/programacao\/wp-json\/wp\/v2\/tags?post=1311"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}