Skip to content

Commit e113559

Browse files
committed
deploy: 8264fe9
1 parent a7e3168 commit e113559

File tree

10 files changed

+7381
-7373
lines changed

10 files changed

+7381
-7373
lines changed

en/lc/1647/index.html

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41947,9 +41947,9 @@
4194741947
<ul class="md-nav__list">
4194841948

4194941949
<li class="md-nav__item">
41950-
<a href="#solution-1" class="md-nav__link">
41950+
<a href="#solution-1-array-sorting" class="md-nav__link">
4195141951
<span class="md-ellipsis">
41952-
Solution 1
41952+
Solution 1: Array + Sorting
4195341953
</span>
4195441954
</a>
4195541955

@@ -81843,7 +81843,12 @@ <h2 id="description">Description</h2>
8184381843
<h2 id="solutions">Solutions</h2>
8184481844
<!-- solution:start -->
8184581845

81846-
<h3 id="solution-1">Solution 1</h3>
81846+
<h3 id="solution-1-array-sorting">Solution 1: Array + Sorting</h3>
81847+
<p>First, we use an array $\textit{cnt}$ of length $26$ to count the occurrences of each letter in the string $s$.</p>
81848+
<p>Then, we sort the array $\textit{cnt}$ in descending order. We define a variable $\textit{pre}$ to record the current number of occurrences of the letter.</p>
81849+
<p>Next, we traverse each element $v$ in the array $\textit{cnt}$. If the current $\textit{pre}$ is $0$, we directly add $v$ to the answer. Otherwise, if $v \geq \textit{pre}$, we add $v - \textit{pre} + 1$ to the answer and decrement $\textit{pre}$ by $1$. Otherwise, we directly update $\textit{pre}$ to $v$. Then, we continue to the next element.</p>
81850+
<p>After traversing, we return the answer.</p>
81851+
<p>The time complexity is $O(n + |\Sigma| \times \log |\Sigma|)$, and the space complexity is $O(|\Sigma|)$. Here, $n$ is the length of the string $s$, and $|\Sigma|$ is the size of the alphabet. In this problem, $|\Sigma| = 26$.</p>
8184781852
<div class="tabbed-set tabbed-alternate" data-tabs="1:6"><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" /><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></div>
8184881853
<div class="tabbed-content">
8184981854
<div class="tabbed-block">

en/lc/1967/index.html

Lines changed: 18 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -48667,9 +48667,9 @@
4866748667
<ul class="md-nav__list">
4866848668

4866948669
<li class="md-nav__item">
48670-
<a href="#solution-1" class="md-nav__link">
48670+
<a href="#solution-1-simulation" class="md-nav__link">
4867148671
<span class="md-ellipsis">
48672-
Solution 1
48672+
Solution 1: Simulation
4867348673
</span>
4867448674
</a>
4867548675

@@ -81830,8 +81830,11 @@ <h2 id="description">Description</h2>
8183081830
<h2 id="solutions">Solutions</h2>
8183181831
<!-- solution:start -->
8183281832

81833-
<h3 id="solution-1">Solution 1</h3>
81834-
<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>
81833+
<h3 id="solution-1-simulation">Solution 1: Simulation</h3>
81834+
<p>Traverse each string $p$ in the array $\textit{patterns}$ and check if it is a substring of $\textit{word}$. If it is, increment the answer by one.</p>
81835+
<p>After traversing, return the answer.</p>
81836+
<p>The time complexity is $O(n \times m)$, and the space complexity is $O(1)$. Here, $n$ and $m$ are the lengths of $\textit{patterns}$ and $\textit{word}$, respectively.</p>
81837+
<div class="tabbed-set tabbed-alternate" data-tabs="1:6"><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" /><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></div>
8183581838
<div class="tabbed-content">
8183681839
<div class="tabbed-block">
8183781840
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -81908,20 +81911,20 @@ <h3 id="solution-1">Solution 1</h3>
8190881911
<div class="tabbed-block">
8190981912
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
8191081913
<span class="normal">2</span>
81914+
<span class="normal">3</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">numOfStrings</span><span class="p">(</span><span class="nx">patterns</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">[],</span><span class="w"> </span><span class="nx">word</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>
81915+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">patterns</span><span class="p">.</span><span class="nx">filter</span><span class="p">(</span><span class="nx">p</span><span class="w"> </span><span class="p">=&gt;</span><span class="w"> </span><span class="nx">word</span><span class="p">.</span><span class="nx">includes</span><span class="p">(</span><span class="nx">p</span><span class="p">)).</span><span class="nx">length</span><span class="p">;</span>
81916+
<span class="p">}</span>
81917+
</code></pre></div></td></tr></table></div>
81918+
</div>
81919+
<div class="tabbed-block">
81920+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
81921+
<span class="normal">2</span>
8191181922
<span class="normal">3</span>
8191281923
<span class="normal">4</span>
81913-
<span class="normal">5</span>
81914-
<span class="normal">6</span>
81915-
<span class="normal">7</span>
81916-
<span class="normal">8</span>
81917-
<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">numOfStrings</span><span class="p">(</span><span class="nx">patterns</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">[],</span><span class="w"> </span><span class="nx">word</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>
81918-
<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>
81919-
<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">p</span><span class="w"> </span><span class="k">of</span><span class="w"> </span><span class="nx">patterns</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
81920-
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="nx">word</span><span class="p">.</span><span class="nx">includes</span><span class="p">(</span><span class="nx">p</span><span class="p">))</span><span class="w"> </span><span class="p">{</span>
81921-
<span class="w"> </span><span class="o">++</span><span class="nx">ans</span><span class="p">;</span>
81922-
<span class="w"> </span><span class="p">}</span>
81924+
<span class="normal">5</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>
81925+
<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">num_of_strings</span><span class="p">(</span><span class="n">patterns</span><span class="p">:</span><span class="w"> </span><span class="nb">Vec</span><span class="o">&lt;</span><span class="nb">String</span><span class="o">&gt;</span><span class="p">,</span><span class="w"> </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">-&gt;</span><span class="w"> </span><span class="kt">i32</span><span class="w"> </span><span class="p">{</span>
81926+
<span class="w"> </span><span class="n">patterns</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">filter</span><span class="p">(</span><span class="o">|</span><span class="n">p</span><span class="o">|</span><span class="w"> </span><span class="n">word</span><span class="p">.</span><span class="n">contains</span><span class="p">(</span><span class="o">&amp;**</span><span class="n">p</span><span class="p">)).</span><span class="n">count</span><span class="p">()</span><span class="w"> </span><span class="k">as</span><span class="w"> </span><span class="kt">i32</span>
8192381927
<span class="w"> </span><span class="p">}</span>
81924-
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
8192581928
<span class="p">}</span>
8192681929
</code></pre></div></td></tr></table></div>
8192781930
</div>

en/search/search_index.json

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

0 commit comments

Comments
 (0)