|
52813 | 52813 | <ul class="md-nav__list">
|
52814 | 52814 |
|
52815 | 52815 | <li class="md-nav__item">
|
52816 |
| - <a href="#solution-1" class="md-nav__link"> |
| 52816 | + <a href="#solution-1-brute-force-enumeration-hash-table" class="md-nav__link"> |
52817 | 52817 | <span class="md-ellipsis">
|
52818 |
| - Solution 1 |
52819 |
| - </span> |
52820 |
| - </a> |
52821 |
| - |
52822 |
| -</li> |
52823 |
| - |
52824 |
| - <li class="md-nav__item"> |
52825 |
| - <a href="#solution-2" class="md-nav__link"> |
52826 |
| - <span class="md-ellipsis"> |
52827 |
| - Solution 2 |
| 52818 | + Solution 1: Brute Force Enumeration + Hash Table |
52828 | 52819 | </span>
|
52829 | 52820 | </a>
|
52830 | 52821 |
|
@@ -86424,19 +86415,35 @@ <h2 id="description">Description</h2>
|
86424 | 86415 | <h2 id="solutions">Solutions</h2>
|
86425 | 86416 | <!-- solution:start -->
|
86426 | 86417 |
|
86427 |
| -<h3 id="solution-1">Solution 1</h3> |
| 86418 | +<h3 id="solution-1-brute-force-enumeration-hash-table">Solution 1: Brute Force Enumeration + Hash Table</h3> |
| 86419 | +<p>We can enumerate the left endpoint <span class="arithmatex">\(i\)</span> of the substring. For the current left endpoint, maintain a hash table to record the vowels that appear in the current substring. Then enumerate the right endpoint <span class="arithmatex">\(j\)</span>. If the character at the current right endpoint is not a vowel, break the loop. Otherwise, add the character at the current right endpoint to the hash table. If the number of elements in the hash table is <span class="arithmatex">\(5\)</span>, it means the current substring is a vowel substring, and increment the result by <span class="arithmatex">\(1\)</span>.</p> |
| 86420 | +<p>The time complexity is <span class="arithmatex">\(O(n^2)\)</span>, and the space complexity is <span class="arithmatex">\(O(C)\)</span>. Here, <span class="arithmatex">\(n\)</span> is the length of the string <span class="arithmatex">\(word\)</span>, and <span class="arithmatex">\(C\)</span> is the size of the character set, which is <span class="arithmatex">\(5\)</span> in this problem.</p> |
86428 | 86421 | <div class="tabbed-set tabbed-alternate" data-tabs="1:5"><input checked="checked" id="__tabbed_1_1" name="__tabbed_1" type="radio" /><input id="__tabbed_1_2" name="__tabbed_1" type="radio" /><input id="__tabbed_1_3" name="__tabbed_1" type="radio" /><input id="__tabbed_1_4" name="__tabbed_1" type="radio" /><input id="__tabbed_1_5" name="__tabbed_1" type="radio" /><div class="tabbed-labels"><label for="__tabbed_1_1">Python3</label><label for="__tabbed_1_2">Java</label><label for="__tabbed_1_3">C++</label><label for="__tabbed_1_4">Go</label><label for="__tabbed_1_5">TypeScript</label></div>
|
86429 | 86422 | <div class="tabbed-content">
|
86430 | 86423 | <div class="tabbed-block">
|
86431 |
| -<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span> |
86432 |
| -<span class="normal">2</span> |
86433 |
| -<span class="normal">3</span> |
86434 |
| -<span class="normal">4</span> |
86435 |
| -<span class="normal">5</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="p">:</span> |
| 86424 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 86425 | +<span class="normal"> 2</span> |
| 86426 | +<span class="normal"> 3</span> |
| 86427 | +<span class="normal"> 4</span> |
| 86428 | +<span class="normal"> 5</span> |
| 86429 | +<span class="normal"> 6</span> |
| 86430 | +<span class="normal"> 7</span> |
| 86431 | +<span class="normal"> 8</span> |
| 86432 | +<span class="normal"> 9</span> |
| 86433 | +<span class="normal">10</span> |
| 86434 | +<span class="normal">11</span> |
| 86435 | +<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="p">:</span> |
86436 | 86436 | <span class="k">def</span><span class="w"> </span><span class="nf">countVowelSubstrings</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">word</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span>
|
86437 |
| - <span class="n">n</span> <span class="o">=</span> <span class="nb">len</span><span class="p">(</span><span class="n">word</span><span class="p">)</span> |
86438 |
| - <span class="n">s</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="s1">'aeiou'</span><span class="p">)</span> |
86439 |
| - <span class="k">return</span> <span class="nb">sum</span><span class="p">(</span><span class="nb">set</span><span class="p">(</span><span class="n">word</span><span class="p">[</span><span class="n">i</span><span class="p">:</span><span class="n">j</span><span class="p">])</span> <span class="o">==</span> <span class="n">s</span> <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">)</span> <span class="k">for</span> <span class="n">j</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">i</span> <span class="o">+</span> <span class="mi">1</span><span class="p">,</span> <span class="n">n</span> <span class="o">+</span> <span class="mi">1</span><span class="p">))</span> |
| 86437 | + <span class="n">s</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="s2">"aeiou"</span><span class="p">)</span> |
| 86438 | + <span class="n">ans</span><span class="p">,</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">word</span><span class="p">)</span> |
| 86439 | + <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span> |
| 86440 | + <span class="n">t</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span> |
| 86441 | + <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">word</span><span class="p">[</span><span class="n">i</span><span class="p">:]:</span> |
| 86442 | + <span class="k">if</span> <span class="n">c</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">s</span><span class="p">:</span> |
| 86443 | + <span class="k">break</span> |
| 86444 | + <span class="n">t</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> |
| 86445 | + <span class="n">ans</span> <span class="o">+=</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">==</span> <span class="mi">5</span> |
| 86446 | + <span class="k">return</span> <span class="n">ans</span> |
86440 | 86447 | </code></pre></div></td></tr></table></div>
|
86441 | 86448 | </div>
|
86442 | 86449 | <div class="tabbed-block">
|
@@ -86611,41 +86618,6 @@ <h3 id="solution-1">Solution 1</h3>
|
86611 | 86618 | </div>
|
86612 | 86619 | <!-- solution:end -->
|
86613 | 86620 |
|
86614 |
| -<!-- solution:start --> |
86615 |
| - |
86616 |
| -<h3 id="solution-2">Solution 2</h3> |
86617 |
| -<div class="tabbed-set tabbed-alternate" data-tabs="2:1"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">Python3</label></div> |
86618 |
| -<div class="tabbed-content"> |
86619 |
| -<div class="tabbed-block"> |
86620 |
| -<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
86621 |
| -<span class="normal"> 2</span> |
86622 |
| -<span class="normal"> 3</span> |
86623 |
| -<span class="normal"> 4</span> |
86624 |
| -<span class="normal"> 5</span> |
86625 |
| -<span class="normal"> 6</span> |
86626 |
| -<span class="normal"> 7</span> |
86627 |
| -<span class="normal"> 8</span> |
86628 |
| -<span class="normal"> 9</span> |
86629 |
| -<span class="normal">10</span> |
86630 |
| -<span class="normal">11</span> |
86631 |
| -<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="p">:</span> |
86632 |
| - <span class="k">def</span><span class="w"> </span><span class="nf">countVowelSubstrings</span><span class="p">(</span><span class="bp">self</span><span class="p">,</span> <span class="n">word</span><span class="p">:</span> <span class="nb">str</span><span class="p">)</span> <span class="o">-></span> <span class="nb">int</span><span class="p">:</span> |
86633 |
| - <span class="n">s</span> <span class="o">=</span> <span class="nb">set</span><span class="p">(</span><span class="s1">'aeiou'</span><span class="p">)</span> |
86634 |
| - <span class="n">ans</span><span class="p">,</span> <span class="n">n</span> <span class="o">=</span> <span class="mi">0</span><span class="p">,</span> <span class="nb">len</span><span class="p">(</span><span class="n">word</span><span class="p">)</span> |
86635 |
| - <span class="k">for</span> <span class="n">i</span> <span class="ow">in</span> <span class="nb">range</span><span class="p">(</span><span class="n">n</span><span class="p">):</span> |
86636 |
| - <span class="n">t</span> <span class="o">=</span> <span class="nb">set</span><span class="p">()</span> |
86637 |
| - <span class="k">for</span> <span class="n">c</span> <span class="ow">in</span> <span class="n">word</span><span class="p">[</span><span class="n">i</span><span class="p">:]:</span> |
86638 |
| - <span class="k">if</span> <span class="n">c</span> <span class="ow">not</span> <span class="ow">in</span> <span class="n">s</span><span class="p">:</span> |
86639 |
| - <span class="k">break</span> |
86640 |
| - <span class="n">t</span><span class="o">.</span><span class="n">add</span><span class="p">(</span><span class="n">c</span><span class="p">)</span> |
86641 |
| - <span class="n">ans</span> <span class="o">+=</span> <span class="nb">len</span><span class="p">(</span><span class="n">t</span><span class="p">)</span> <span class="o">==</span> <span class="mi">5</span> |
86642 |
| - <span class="k">return</span> <span class="n">ans</span> |
86643 |
| -</code></pre></div></td></tr></table></div> |
86644 |
| -</div> |
86645 |
| -</div> |
86646 |
| -</div> |
86647 |
| -<!-- solution:end --> |
86648 |
| - |
86649 | 86621 | <!-- problem:end -->
|
86650 | 86622 |
|
86651 | 86623 |
|
|
0 commit comments