|
52835 | 52835 | <ul class="md-nav__list">
|
52836 | 52836 |
|
52837 | 52837 | <li class="md-nav__item">
|
52838 |
| - <a href="#solution-1" class="md-nav__link"> |
| 52838 | + <a href="#solution-1-enumerate-contribution" class="md-nav__link"> |
52839 | 52839 | <span class="md-ellipsis">
|
52840 |
| - Solution 1 |
| 52840 | + Solution 1: Enumerate Contribution |
52841 | 52841 | </span>
|
52842 | 52842 | </a>
|
52843 | 52843 |
|
@@ -86386,20 +86386,20 @@ <h2 id="description">Description</h2>
|
86386 | 86386 | <pre>
|
86387 | 86387 | <strong>Input:</strong> word = "aba"
|
86388 | 86388 | <strong>Output:</strong> 6
|
86389 |
| -<strong>Explanation:</strong> |
| 86389 | +<strong>Explanation:</strong> |
86390 | 86390 | All possible substrings are: "a", "ab", "aba", "b", "ba", and "a".
|
86391 | 86391 | - "b" has 0 vowels in it
|
86392 | 86392 | - "a", "ab", "ba", and "a" have 1 vowel each
|
86393 | 86393 | - "aba" has 2 vowels in it
|
86394 |
| -Hence, the total sum of vowels = 0 + 1 + 1 + 1 + 1 + 2 = 6. |
| 86394 | +Hence, the total sum of vowels = 0 + 1 + 1 + 1 + 1 + 2 = 6. |
86395 | 86395 | </pre>
|
86396 | 86396 |
|
86397 | 86397 | <p><strong class="example">Example 2:</strong></p>
|
86398 | 86398 |
|
86399 | 86399 | <pre>
|
86400 | 86400 | <strong>Input:</strong> word = "abc"
|
86401 | 86401 | <strong>Output:</strong> 3
|
86402 |
| -<strong>Explanation:</strong> |
| 86402 | +<strong>Explanation:</strong> |
86403 | 86403 | All possible substrings are: "a", "ab", "abc", "b", "bc", and "c".
|
86404 | 86404 | - "a", "ab", and "abc" have 1 vowel each
|
86405 | 86405 | - "b", "bc", and "c" have 0 vowels each
|
@@ -86427,8 +86427,10 @@ <h2 id="description">Description</h2>
|
86427 | 86427 | <h2 id="solutions">Solutions</h2>
|
86428 | 86428 | <!-- solution:start -->
|
86429 | 86429 |
|
86430 |
| -<h3 id="solution-1">Solution 1</h3> |
86431 |
| -<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> |
| 86430 | +<h3 id="solution-1-enumerate-contribution">Solution 1: Enumerate Contribution</h3> |
| 86431 | +<p>We can enumerate each character <span class="arithmatex">\(\textit{word}[i]\)</span> in the string. If <span class="arithmatex">\(\textit{word}[i]\)</span> is a vowel, then <span class="arithmatex">\(\textit{word}[i]\)</span> appears in <span class="arithmatex">\((i + 1) \times (n - i)\)</span> substrings. We sum up the counts of these substrings.</p> |
| 86432 | +<p>The time complexity is <span class="arithmatex">\(O(n)\)</span>, where <span class="arithmatex">\(n\)</span> is the length of the string <span class="arithmatex">\(\textit{word}\)</span>. The space complexity is <span class="arithmatex">\(O(1)\)</span>.</p> |
| 86433 | +<div class="tabbed-set tabbed-alternate" data-tabs="1:7"><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" /><input id="__tabbed_1_6" name="__tabbed_1" type="radio" /><input id="__tabbed_1_7" 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><label for="__tabbed_1_6">Rust</label><label for="__tabbed_1_7">JavaScript</label></div> |
86432 | 86434 | <div class="tabbed-content">
|
86433 | 86435 | <div class="tabbed-block">
|
86434 | 86436 | <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
|
@@ -86534,6 +86536,58 @@ <h3 id="solution-1">Solution 1</h3>
|
86534 | 86536 | <span class="p">}</span>
|
86535 | 86537 | </code></pre></div></td></tr></table></div>
|
86536 | 86538 | </div>
|
| 86539 | +<div class="tabbed-block"> |
| 86540 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 86541 | +<span class="normal"> 2</span> |
| 86542 | +<span class="normal"> 3</span> |
| 86543 | +<span class="normal"> 4</span> |
| 86544 | +<span class="normal"> 5</span> |
| 86545 | +<span class="normal"> 6</span> |
| 86546 | +<span class="normal"> 7</span> |
| 86547 | +<span class="normal"> 8</span> |
| 86548 | +<span class="normal"> 9</span> |
| 86549 | +<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">impl</span><span class="w"> </span><span class="n">Solution</span><span class="w"> </span><span class="p">{</span> |
| 86550 | +<span class="w"> </span><span class="k">pub</span><span class="w"> </span><span class="k">fn</span><span class="w"> </span><span class="nf">count_vowels</span><span class="p">(</span><span class="n">word</span><span class="p">:</span><span class="w"> </span><span class="nb">String</span><span class="p">)</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="p">{</span> |
| 86551 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">word</span><span class="p">.</span><span class="n">len</span><span class="p">()</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i64</span><span class="p">;</span> |
| 86552 | +<span class="w"> </span><span class="n">word</span><span class="p">.</span><span class="n">chars</span><span class="p">()</span> |
| 86553 | +<span class="w"> </span><span class="p">.</span><span class="n">enumerate</span><span class="p">()</span> |
| 86554 | +<span class="w"> </span><span class="p">.</span><span class="n">filter</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">_</span><span class="p">,</span><span class="w"> </span><span class="n">c</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="s">"aeiou"</span><span class="p">.</span><span class="n">contains</span><span class="p">(</span><span class="o">*</span><span class="n">c</span><span class="p">))</span> |
| 86555 | +<span class="w"> </span><span class="p">.</span><span class="n">map</span><span class="p">(</span><span class="o">|</span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="n">_</span><span class="p">)</span><span class="o">|</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mi">1</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="n">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i64</span><span class="p">))</span> |
| 86556 | +<span class="w"> </span><span class="p">.</span><span class="n">sum</span><span class="p">()</span> |
| 86557 | +<span class="w"> </span><span class="p">}</span> |
| 86558 | +<span class="p">}</span> |
| 86559 | +</code></pre></div></td></tr></table></div> |
| 86560 | +</div> |
| 86561 | +<div class="tabbed-block"> |
| 86562 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 86563 | +<span class="normal"> 2</span> |
| 86564 | +<span class="normal"> 3</span> |
| 86565 | +<span class="normal"> 4</span> |
| 86566 | +<span class="normal"> 5</span> |
| 86567 | +<span class="normal"> 6</span> |
| 86568 | +<span class="normal"> 7</span> |
| 86569 | +<span class="normal"> 8</span> |
| 86570 | +<span class="normal"> 9</span> |
| 86571 | +<span class="normal">10</span> |
| 86572 | +<span class="normal">11</span> |
| 86573 | +<span class="normal">12</span> |
| 86574 | +<span class="normal">13</span> |
| 86575 | +<span class="normal">14</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span> |
| 86576 | +<span class="cm"> * @param {string} word</span> |
| 86577 | +<span class="cm"> * @return {number}</span> |
| 86578 | +<span class="cm"> */</span> |
| 86579 | +<span class="kd">var</span><span class="w"> </span><span class="nx">countVowels</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kd">function</span><span class="w"> </span><span class="p">(</span><span class="nx">word</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 86580 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">word</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span> |
| 86581 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span> |
| 86582 | +<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">let</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="nx">n</span><span class="p">;</span><span class="w"> </span><span class="o">++</span><span class="nx">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 86583 | +<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">([</span><span class="s1">'a'</span><span class="p">,</span><span class="w"> </span><span class="s1">'e'</span><span class="p">,</span><span class="w"> </span><span class="s1">'i'</span><span class="p">,</span><span class="w"> </span><span class="s1">'o'</span><span class="p">,</span><span class="w"> </span><span class="s1">'u'</span><span class="p">].</span><span class="nx">includes</span><span class="p">(</span><span class="nx">word</span><span class="p">[</span><span class="nx">i</span><span class="p">]))</span><span class="w"> </span><span class="p">{</span> |
| 86584 | +<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">)</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="p">(</span><span class="nx">n</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="nx">i</span><span class="p">);</span> |
| 86585 | +<span class="w"> </span><span class="p">}</span> |
| 86586 | +<span class="w"> </span><span class="p">}</span> |
| 86587 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span> |
| 86588 | +<span class="p">};</span> |
| 86589 | +</code></pre></div></td></tr></table></div> |
| 86590 | +</div> |
86537 | 86591 | </div>
|
86538 | 86592 | </div>
|
86539 | 86593 | <!-- solution:end -->
|
|
0 commit comments