{"id":232459,"date":"2023-01-20T18:59:00","date_gmt":"2023-01-20T15:59:00","guid":{"rendered":"https:\/\/wordpress.mediadoma.com\/?p=232459"},"modified":"2023-02-05T12:57:08","modified_gmt":"2023-02-05T09:57:08","slug":"lalgorithme-pour-mettre-les-mots-en-gras-en-html","status":"publish","type":"post","link":"https:\/\/wordpress.mediadoma.com\/fr\/lalgorithme-pour-mettre-les-mots-en-gras-en-html\/","title":{"rendered":"L&rsquo;algorithme pour mettre les mots en gras en HTML"},"content":{"rendered":"<blockquote>\n<p>\u00c9tant donn\u00e9 un ensemble de mots-cl\u00e9s et une cha\u00eene S, mettez toutes les apparitions de tous les mots-cl\u00e9s en S gras. Toutes les lettres entre les balises <strong>et deviennent en gras.<\/strong><\/p>\n<p>La cha\u00eene renvoy\u00e9e doit utiliser le moins de balises possible et, bien s\u00fbr, les balises doivent former une combinaison valide.<\/p>\n<p>Par exemple, \u00e9tant donn\u00e9 que mots = [&quot;ab&quot;, &quot;bc&quot;] et S = &quot;aabcd&quot;, nous devrions renvoyer &quot;a <strong>abc<\/strong> d&quot;. Notez que renvoyer &quot;a <strong>a<em><\/em><\/strong> b<em><\/em>cd&quot; utiliserait plus de balises, donc c&rsquo;est incorrect.<\/p>\n<p>Noter:<\/p>\n<ul>\n<li>mots a une longueur dans la plage [0, 50].<\/li>\n<li>mots[i] a une longueur dans la plage [1, 10].<\/li>\n<li>S a une longueur dans la plage [0, 500].<\/li>\n<li>Tous les caract\u00e8res des mots [i] et S sont des lettres minuscules.<\/li>\n<\/ul>\n<\/blockquote>\n<h3>Rendre la cha\u00eene en gras \u00e0 l&rsquo;aide de l&rsquo;algorithme Bruteforce<\/h3>\n<p>Sans l&rsquo;exigence du plus court, nous pouvons mettre en gras toutes les occurrences des mots de la liste. Comme on nous donne la <a href=\"https:\/\/wordpress.mediadoma.com\/fr\/comment-ajouter-un-moteur-de-recherche-google-au-blog-wordpress-widget-code-html-simple\/\" title=\"cha\u00eene HTML\">cha\u00eene HTML<\/a> d&rsquo;origine, nous pouvons marquer en gras pour chaque caract\u00e8re qui appara\u00eet dans les mots en gras.<\/p>\n<p>Ainsi, avec l&rsquo;espace O(N) et O(NM) o\u00f9 N est la taille de la cha\u00eene et M est la longueur totale de la cha\u00eene en gras, l&rsquo; <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\">algorithme de force brute<\/a> C++ suivant ins\u00e9rera le moins de balises HTML en gras qui satisfont \u00e0 l&rsquo;exigence.<\/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>Une fois les caract\u00e8res gras marqu\u00e9s, nous analysons \u00e0 nouveau la cha\u00eene et recherchons les limites, puis ins\u00e9rons les balises en cons\u00e9quence.<\/p>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Source d&rsquo;enregistrement:  <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&rsquo;algorithme pour mettre les mots en gras en 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":[915,893,717,832,841],"tags":[1167],"class_list":["post-232459","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-autre","category-code-2","category-developpeur","category-guide-pour-les-debutants","category-tutoriels","tag-affiai-fr"],"_links":{"self":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232459","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/comments?post=232459"}],"version-history":[{"count":0,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/posts\/232459\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media\/224460"}],"wp:attachment":[{"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/media?parent=232459"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/categories?post=232459"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wordpress.mediadoma.com\/fr\/wp-json\/wp\/v2\/tags?post=232459"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}