Skip to content

Commit b7bdb86

Browse files
committed
deploy: 59ce33e
1 parent a9ed3f4 commit b7bdb86

File tree

4 files changed

+169
-23
lines changed

4 files changed

+169
-23
lines changed

en/lc/2083/index.html

Lines changed: 85 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -51145,9 +51145,9 @@
5114551145
<ul class="md-nav__list">
5114651146

5114751147
<li class="md-nav__item">
51148-
<a href="#solution-1" class="md-nav__link">
51148+
<a href="#solution-1-array-or-hash-table" class="md-nav__link">
5114951149
<span class="md-ellipsis">
51150-
Solution 1
51150+
Solution 1: Array or Hash Table
5115151151
</span>
5115251152
</a>
5115351153

@@ -82327,8 +82327,12 @@ <h2 id="description">Description</h2>
8232782327
<h2 id="solutions">Solutions</h2>
8232882328
<!-- solution:start -->
8232982329

82330-
<h3 id="solution-1">Solution 1</h3>
82331-
<div class="tabbed-set tabbed-alternate" data-tabs="1:4"><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" /><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></div>
82330+
<h3 id="solution-1-array-or-hash-table">Solution 1: Array or Hash Table</h3>
82331+
<p>We can use a hash table or an array $\textit{cnt}$ of length $26$ to record the occurrences of each character.</p>
82332+
<p>Traverse the string $\textit{s}$. For each character $\textit{c}$, increment the value of $\textit{cnt}[c]$ by $1$, and then add the value of $\textit{cnt}[c]$ to the answer.</p>
82333+
<p>Finally, return the answer.</p>
82334+
<p>The time complexity is $O(n)$, where $n$ is the length of the string $\textit{s}$. The space complexity is $O(|\Sigma|)$, where $\Sigma$ is the character set. Here, it is lowercase English letters, so $|\Sigma|=26$.</p>
82335+
<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>
8233282336
<div class="tabbed-content">
8233382337
<div class="tabbed-block">
8233482338
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -82358,16 +82362,12 @@ <h3 id="solution-1">Solution 1</h3>
8235882362
<span class="normal"> 7</span>
8235982363
<span class="normal"> 8</span>
8236082364
<span class="normal"> 9</span>
82361-
<span class="normal">10</span>
82362-
<span class="normal">11</span>
82363-
<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
82365+
<span class="normal">10</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
8236482366
<span class="w"> </span><span class="kd">public</span><span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="nf">numberOfSubstrings</span><span class="p">(</span><span class="n">String</span><span class="w"> </span><span class="n">s</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
8236582367
<span class="w"> </span><span class="kt">int</span><span class="o">[]</span><span class="w"> </span><span class="n">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="kt">int</span><span class="o">[</span><span class="mi">26</span><span class="o">]</span><span class="p">;</span>
8236682368
<span class="w"> </span><span class="kt">long</span><span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
82367-
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="na">length</span><span class="p">();</span><span class="w"> </span><span class="o">++</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82368-
<span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="na">charAt</span><span class="p">(</span><span class="n">i</span><span class="p">)</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="p">;</span>
82369-
<span class="w"> </span><span class="o">++</span><span class="n">cnt</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="p">;</span>
82370-
<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">cnt</span><span class="o">[</span><span class="n">j</span><span class="o">]</span><span class="p">;</span>
82369+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">char</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="p">:</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="na">toCharArray</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
82370+
<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="o">++</span><span class="n">cnt</span><span class="o">[</span><span class="n">c</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="sc">&#39;a&#39;</span><span class="o">]</span><span class="p">;</span>
8237182371
<span class="w"> </span><span class="p">}</span>
8237282372
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">ans</span><span class="p">;</span>
8237382373
<span class="w"> </span><span class="p">}</span>
@@ -82418,6 +82418,80 @@ <h3 id="solution-1">Solution 1</h3>
8241882418
<span class="p">}</span>
8241982419
</code></pre></div></td></tr></table></div>
8242082420
</div>
82421+
<div class="tabbed-block">
82422+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
82423+
<span class="normal">2</span>
82424+
<span class="normal">3</span>
82425+
<span class="normal">4</span>
82426+
<span class="normal">5</span>
82427+
<span class="normal">6</span>
82428+
<span class="normal">7</span>
82429+
<span class="normal">8</span>
82430+
<span class="normal">9</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">numberOfSubstrings</span><span class="p">(</span><span class="nx">s</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="p">{</span>
82431+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">cnt</span><span class="o">:</span><span class="w"> </span><span class="kt">Record</span><span class="o">&lt;</span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="o">&gt;</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{};</span>
82432+
<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>
82433+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="nx">c</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">s</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82434+
<span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">c</span><span class="p">]</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="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
82435+
<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span>
82436+
<span class="w"> </span><span class="p">}</span>
82437+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
82438+
<span class="p">}</span>
82439+
</code></pre></div></td></tr></table></div>
82440+
</div>
82441+
<div class="tabbed-block">
82442+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
82443+
<span class="normal"> 2</span>
82444+
<span class="normal"> 3</span>
82445+
<span class="normal"> 4</span>
82446+
<span class="normal"> 5</span>
82447+
<span class="normal"> 6</span>
82448+
<span class="normal"> 7</span>
82449+
<span class="normal"> 8</span>
82450+
<span class="normal"> 9</span>
82451+
<span class="normal">10</span>
82452+
<span class="normal">11</span>
82453+
<span class="normal">12</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>
82454+
<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">number_of_substrings</span><span class="p">(</span><span class="n">s</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">-&gt;</span><span class="w"> </span><span class="kt">i64</span><span class="w"> </span><span class="p">{</span>
82455+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="mi">26</span><span class="p">];</span>
82456+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="k">mut</span><span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0_</span><span class="k">i64</span><span class="p">;</span>
82457+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="n">c</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">s</span><span class="p">.</span><span class="n">chars</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
82458+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">idx</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="n">c</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">u8</span><span class="w"> </span><span class="o">-</span><span class="w"> </span><span class="sc">b&#39;a&#39;</span><span class="p">)</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">usize</span><span class="p">;</span>
82459+
<span class="w"> </span><span class="n">cnt</span><span class="p">[</span><span class="n">idx</span><span class="p">]</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="mi">1</span><span class="p">;</span>
82460+
<span class="w"> </span><span class="n">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">cnt</span><span class="p">[</span><span class="n">idx</span><span class="p">];</span>
82461+
<span class="w"> </span><span class="p">}</span>
82462+
<span class="w"> </span><span class="n">ans</span>
82463+
<span class="w"> </span><span class="p">}</span>
82464+
<span class="p">}</span>
82465+
</code></pre></div></td></tr></table></div>
82466+
</div>
82467+
<div class="tabbed-block">
82468+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
82469+
<span class="normal"> 2</span>
82470+
<span class="normal"> 3</span>
82471+
<span class="normal"> 4</span>
82472+
<span class="normal"> 5</span>
82473+
<span class="normal"> 6</span>
82474+
<span class="normal"> 7</span>
82475+
<span class="normal"> 8</span>
82476+
<span class="normal"> 9</span>
82477+
<span class="normal">10</span>
82478+
<span class="normal">11</span>
82479+
<span class="normal">12</span>
82480+
<span class="normal">13</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="cm">/**</span>
82481+
<span class="cm"> * @param {string} s</span>
82482+
<span class="cm"> * @return {number}</span>
82483+
<span class="cm"> */</span>
82484+
<span class="kd">var</span><span class="w"> </span><span class="nx">numberOfSubstrings</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">s</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82485+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">cnt</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">{};</span>
82486+
<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>
82487+
<span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kd">const</span><span class="w"> </span><span class="nx">c</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">s</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
82488+
<span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">c</span><span class="p">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">(</span><span class="nx">cnt</span><span class="p">[</span><span class="nx">c</span><span class="p">]</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="o">+</span><span class="w"> </span><span class="mf">1</span><span class="p">;</span>
82489+
<span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">cnt</span><span class="p">[</span><span class="nx">c</span><span class="p">];</span>
82490+
<span class="w"> </span><span class="p">}</span>
82491+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
82492+
<span class="p">};</span>
82493+
</code></pre></div></td></tr></table></div>
82494+
</div>
8242182495
</div>
8242282496
</div>
8242382497
<!-- solution:end -->

en/search/search_index.json

Lines changed: 1 addition & 1 deletion
Large diffs are not rendered by default.

0 commit comments

Comments
 (0)