{"id":232588,"date":"2023-01-20T19:01:00","date_gmt":"2023-01-20T16:01:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232588"},"modified":"2023-02-05T12:53:22","modified_gmt":"2023-02-05T09:53:22","slug":"lalgoritmo-per-rendere-le-parole-audaci-in-html","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/it\/lalgoritmo-per-rendere-le-parole-audaci-in-html\/","title":{"rendered":"L&#8217;algoritmo per rendere le parole audaci in HTML"},"content":{"rendered":"<blockquote>\n<p>Dato un insieme di parole chiave e una stringa S, rendi tutte le apparenze di tutte le parole chiave in S grassetto. Tutte le lettere tra i tag e diventano in grassetto<strong>.<\/strong><\/p>\n<p>La stringa restituita dovrebbe utilizzare il minor numero possibile di tag e, naturalmente, i tag dovrebbero formare una combinazione valida.<\/p>\n<p>Ad esempio, dato che le parole = [&quot;ab&quot;, &quot;bc&quot;] e S = &quot;aabcd&quot;, dovremmo restituire &quot;a <strong>abc<\/strong> d&quot;. Nota che restituire &quot;a <strong>a<em><\/em><\/strong> b<em><\/em>cd&quot; userebbe pi\u00f9 tag, quindi non \u00e8 corretto.<\/p>\n<p>Nota:<\/p>\n<ul>\n<li>le parole hanno una lunghezza nell&#8217;intervallo [0, 50].<\/li>\n<li>word[i] ha una lunghezza nell&#8217;intervallo [1, 10].<\/li>\n<li>S ha lunghezza nell&#8217;intervallo [0, 500].<\/li>\n<li>Tutti i caratteri nelle parole[i] e S sono lettere minuscole.<\/li>\n<\/ul>\n<\/blockquote>\n<h3>Rendi String Bold usando l&#8217;algoritmo Bruteforce<\/h3>\n<p>Senza il requisito del pi\u00f9 breve, possiamo mettere in grassetto ogni occorrenza delle parole nell&#8217;elenco. Poich\u00e9 ci viene data la <a href=\"https:\/\/wordpress.mediadoma.com\/it\/come-aggiungere-il-motore-di-ricerca-di-google-al-blog-di-wordpress-widget-codice-html-semplice\/\" title=\"stringa HTML\">stringa HTML<\/a> originale, possiamo contrassegnare in grassetto ogni carattere che appare nelle parole in grassetto.<\/p>\n<p>Quindi, con O(N) spazio e O(NM) dove N \u00e8 la dimensione della stringa e M \u00e8 la lunghezza totale della stringa in grassetto, il seguente <a href=\"https:\/\/helloacm.com\/algorithms-to-find-the-three-numbers-in-array-that-sum-up-to-zero-3sum\/\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">algoritmo C++ bruteforce<\/a> inserir\u00e0 i meno tag HTML in grassetto che soddisfano il requisito.<\/p>\n<pre><code>class Solution {\npublic:\n\u00a0 \u00a0 string boldWords(vector&lt;string&gt;&amp; words, string S) {\n\u00a0 \u00a0 \u00a0 \u00a0 int n = S.size();\n\u00a0 \u00a0 \u00a0 \u00a0 vector&lt;bool&gt; bold(n, false);\n\u00a0 \u00a0 \u00a0 \u00a0 for (const auto &amp;s: words) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 for (int i = 0; i + s.size() - 1 &lt; n; ++ i) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 bool ok = true;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 for (int k = 0; k &lt; s.size(); ++ k) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (s[k] != S[i + k]) { \/\/ bold string s not found in the string\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ok = false;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 break;\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (ok) { \/\/ it is bold\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 for (int k = 0; k &lt; s.size(); ++ k) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 bold[i + k] = true; \/\/ mark the character bold\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 string ans = \"\";\n\u00a0 \u00a0 \u00a0 \u00a0 for (int i = 0; i &lt; n; ++ i) {\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ bold start boundary\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (bold[i] &amp;&amp; (i == 0 || !bold[i - 1])) ans += \"&lt;b&gt;\"; \n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 ans += S[i];\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \/\/ bold end boundary\n\u00a0 \u00a0 \u00a0 \u00a0 \u00a0 \u00a0 if (bold[i] &amp;&amp; (i == n - 1 || !bold[i + 1])) ans += \"&lt;\/b&gt;\";\n\u00a0 \u00a0 \u00a0 \u00a0 }\n\u00a0 \u00a0 \u00a0 \u00a0 return ans;\n\u00a0 \u00a0 }\n};<\/code><\/pre>\n<p>Dopo che i caratteri in grassetto sono stati contrassegnati, eseguiamo nuovamente la scansione della stringa e cerchiamo i limiti e inseriamo i tag di conseguenza.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fonte di registrazione:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/helloacm.com\" class=\"external external_icon\">helloacm.com<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>L&#8217;algoritmo per rendere le parole audaci in HTML<\/p>\n","protected":false},"author":1,"featured_media":224460,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[918,896,835,720,844],"tags":[1168],"class_list":["post-232588","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-altro","category-codice","category-guida-per-principianti","category-sviluppatore","category-tutorial","tag-affiai-it"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232588","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/comments?post=232588"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/posts\/232588\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media\/224460"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/media?parent=232588"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/categories?post=232588"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/it\/wp-json\/wp\/v2\/tags?post=232588"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}