Skip to content

Commit cf591a0

Browse files
committed
deploy: fda9fec
1 parent 1bbc0b1 commit cf591a0

File tree

8 files changed

+7697
-7522
lines changed

8 files changed

+7697
-7522
lines changed

en/lc/604/index.html

Lines changed: 93 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21458,9 +21458,9 @@
2145821458
<ul class="md-nav__list">
2145921459

2146021460
<li class="md-nav__item">
21461-
<a href="#solution-1" class="md-nav__link">
21461+
<a href="#solution-1-parsing-and-storing" class="md-nav__link">
2146221462
<span class="md-ellipsis">
21463-
Solution 1
21463+
Solution 1: Parsing and Storing
2146421464
</span>
2146521465
</a>
2146621466

@@ -91169,8 +91169,11 @@ <h2 id="description">Description</h2>
9116991169
<h2 id="solutions">Solutions</h2>
9117091170
<!-- solution:start -->
9117191171

91172-
<h3 id="solution-1">Solution 1</h3>
91173-
<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>
91172+
<h3 id="solution-1-parsing-and-storing">Solution 1: Parsing and Storing</h3>
91173+
<p>Parse the <code>compressedString</code> into characters <span class="arithmatex">\(c\)</span> and their corresponding repetition counts <span class="arithmatex">\(x\)</span>, and store them in an array or list <span class="arithmatex">\(d\)</span>. Use <span class="arithmatex">\(p\)</span> to point to the current character.</p>
91174+
<p>Then perform operations in <code>next</code> and <code>hasNext</code>.</p>
91175+
<p>The initialization time complexity is <span class="arithmatex">\(O(n)\)</span>, and the time complexity of the other operations is <span class="arithmatex">\(O(1)\)</span>. Here, <span class="arithmatex">\(n\)</span> is the length of <code>compressedString</code>.</p>
91176+
<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>
9117491177
<div class="tabbed-content">
9117591178
<div class="tabbed-block">
9117691179
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -91518,6 +91521,92 @@ <h3 id="solution-1">Solution 1</h3>
9151891521
<span class="cm"> */</span>
9151991522
</code></pre></div></td></tr></table></div>
9152091523
</div>
91524+
<div class="tabbed-block">
91525+
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
91526+
<span class="normal"> 2</span>
91527+
<span class="normal"> 3</span>
91528+
<span class="normal"> 4</span>
91529+
<span class="normal"> 5</span>
91530+
<span class="normal"> 6</span>
91531+
<span class="normal"> 7</span>
91532+
<span class="normal"> 8</span>
91533+
<span class="normal"> 9</span>
91534+
<span class="normal">10</span>
91535+
<span class="normal">11</span>
91536+
<span class="normal">12</span>
91537+
<span class="normal">13</span>
91538+
<span class="normal">14</span>
91539+
<span class="normal">15</span>
91540+
<span class="normal">16</span>
91541+
<span class="normal">17</span>
91542+
<span class="normal">18</span>
91543+
<span class="normal">19</span>
91544+
<span class="normal">20</span>
91545+
<span class="normal">21</span>
91546+
<span class="normal">22</span>
91547+
<span class="normal">23</span>
91548+
<span class="normal">24</span>
91549+
<span class="normal">25</span>
91550+
<span class="normal">26</span>
91551+
<span class="normal">27</span>
91552+
<span class="normal">28</span>
91553+
<span class="normal">29</span>
91554+
<span class="normal">30</span>
91555+
<span class="normal">31</span>
91556+
<span class="normal">32</span>
91557+
<span class="normal">33</span>
91558+
<span class="normal">34</span>
91559+
<span class="normal">35</span>
91560+
<span class="normal">36</span>
91561+
<span class="normal">37</span>
91562+
<span class="normal">38</span>
91563+
<span class="normal">39</span>
91564+
<span class="normal">40</span>
91565+
<span class="normal">41</span>
91566+
<span class="normal">42</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span><span class="w"> </span><span class="nx">StringIterator</span><span class="w"> </span><span class="p">{</span>
91567+
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">d</span><span class="o">:</span><span class="w"> </span><span class="p">[</span><span class="kt">string</span><span class="p">,</span><span class="w"> </span><span class="kt">number</span><span class="p">][]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[];</span>
91568+
<span class="w"> </span><span class="k">private</span><span class="w"> </span><span class="nx">p</span><span class="o">:</span><span class="w"> </span><span class="kt">number</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
91569+
91570+
<span class="w"> </span><span class="kr">constructor</span><span class="p">(</span><span class="nx">compressedString</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
91571+
<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">compressedString</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span>
91572+
<span class="w"> </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>
91573+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
91574+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">c</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">compressedString</span><span class="p">[</span><span class="nx">i</span><span class="p">];</span>
91575+
<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
91576+
<span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">;</span>
91577+
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">(</span><span class="nx">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="nx">n</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="o">!</span><span class="nb">isNaN</span><span class="p">(</span><span class="nb">Number</span><span class="p">(</span><span class="nx">compressedString</span><span class="p">[</span><span class="nx">i</span><span class="p">])))</span><span class="w"> </span><span class="p">{</span>
91578+
<span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">x</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mf">10</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nb">Number</span><span class="p">(</span><span class="nx">compressedString</span><span class="p">[</span><span class="nx">i</span><span class="p">]);</span>
91579+
<span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">;</span>
91580+
<span class="w"> </span><span class="p">}</span>
91581+
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">d</span><span class="p">.</span><span class="nx">push</span><span class="p">([</span><span class="nx">c</span><span class="p">,</span><span class="w"> </span><span class="nx">x</span><span class="p">]);</span>
91582+
<span class="w"> </span><span class="p">}</span>
91583+
<span class="w"> </span><span class="p">}</span>
91584+
91585+
<span class="w"> </span><span class="nx">next</span><span class="p">()</span><span class="o">:</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="p">{</span>
91586+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="o">!</span><span class="k">this</span><span class="p">.</span><span class="nx">hasNext</span><span class="p">())</span><span class="w"> </span><span class="p">{</span>
91587+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="s1">&#39; &#39;</span><span class="p">;</span>
91588+
<span class="w"> </span><span class="p">}</span>
91589+
<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">d</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">p</span><span class="p">][</span><span class="mf">0</span><span class="p">];</span>
91590+
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">d</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">p</span><span class="p">][</span><span class="mf">1</span><span class="p">]</span><span class="o">--</span><span class="p">;</span>
91591+
<span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="k">this</span><span class="p">.</span><span class="nx">d</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">p</span><span class="p">][</span><span class="mf">1</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="p">{</span>
91592+
<span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">p</span><span class="o">++</span><span class="p">;</span>
91593+
<span class="w"> </span><span class="p">}</span>
91594+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">ans</span><span class="p">;</span>
91595+
<span class="w"> </span><span class="p">}</span>
91596+
91597+
<span class="w"> </span><span class="nx">hasNext</span><span class="p">()</span><span class="o">:</span><span class="w"> </span><span class="kt">boolean</span><span class="w"> </span><span class="p">{</span>
91598+
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">p</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">d</span><span class="p">.</span><span class="nx">length</span><span class="w"> </span><span class="o">&amp;&amp;</span><span class="w"> </span><span class="k">this</span><span class="p">.</span><span class="nx">d</span><span class="p">[</span><span class="k">this</span><span class="p">.</span><span class="nx">p</span><span class="p">][</span><span class="mf">1</span><span class="p">]</span><span class="w"> </span><span class="o">&gt;</span><span class="w"> </span><span class="mf">0</span><span class="p">;</span>
91599+
<span class="w"> </span><span class="p">}</span>
91600+
<span class="p">}</span>
91601+
91602+
<span class="cm">/**</span>
91603+
<span class="cm"> * Your StringIterator object will be instantiated and called as such:</span>
91604+
<span class="cm"> * var obj = new StringIterator(compressedString)</span>
91605+
<span class="cm"> * var param_1 = obj.next()</span>
91606+
<span class="cm"> * var param_2 = obj.hasNext()</span>
91607+
<span class="cm"> */</span>
91608+
</code></pre></div></td></tr></table></div>
91609+
</div>
9152191610
</div>
9152291611
</div>
9152391612
<!-- 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)