|
73643 | 73643 | </span>
|
73644 | 73644 | </a>
|
73645 | 73645 |
|
| 73646 | +</li> |
| 73647 | + |
| 73648 | + <li class="md-nav__item"> |
| 73649 | + <a href="#solution-2-two-pointers" class="md-nav__link"> |
| 73650 | + <span class="md-ellipsis"> |
| 73651 | + Solution 2: Two Pointers |
| 73652 | + </span> |
| 73653 | + </a> |
| 73654 | + |
| 73655 | +</li> |
| 73656 | + |
| 73657 | + <li class="md-nav__item"> |
| 73658 | + <a href="#solution-3-regexp" class="md-nav__link"> |
| 73659 | + <span class="md-ellipsis"> |
| 73660 | + Solution 3: RegExp |
| 73661 | + </span> |
| 73662 | + </a> |
| 73663 | + |
73646 | 73664 | </li>
|
73647 | 73665 |
|
73648 | 73666 | </ul>
|
@@ -80353,6 +80371,124 @@ <h3 id="solution-1-two-pointers">Solution 1: Two Pointers</h3>
|
80353 | 80371 | </div>
|
80354 | 80372 | <!-- solution:end -->
|
80355 | 80373 |
|
| 80374 | +<!-- solution:start --> |
| 80375 | + |
| 80376 | +<h3 id="solution-2-two-pointers">Solution 2: Two Pointers</h3> |
| 80377 | +<div class="tabbed-set tabbed-alternate" data-tabs="2:2"><input checked="checked" id="__tabbed_2_1" name="__tabbed_2" type="radio" /><input id="__tabbed_2_2" name="__tabbed_2" type="radio" /><div class="tabbed-labels"><label for="__tabbed_2_1">TypeScript</label><label for="__tabbed_2_2">JavaScript</label></div> |
| 80378 | +<div class="tabbed-content"> |
| 80379 | +<div class="tabbed-block"> |
| 80380 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 80381 | +<span class="normal"> 2</span> |
| 80382 | +<span class="normal"> 3</span> |
| 80383 | +<span class="normal"> 4</span> |
| 80384 | +<span class="normal"> 5</span> |
| 80385 | +<span class="normal"> 6</span> |
| 80386 | +<span class="normal"> 7</span> |
| 80387 | +<span class="normal"> 8</span> |
| 80388 | +<span class="normal"> 9</span> |
| 80389 | +<span class="normal">10</span> |
| 80390 | +<span class="normal">11</span> |
| 80391 | +<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">compressedString</span><span class="p">(</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">string</span><span class="w"> </span><span class="p">{</span> |
| 80392 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">''</span><span class="p">;</span> |
| 80393 | + |
| 80394 | +<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">1</span><span class="p">,</span><span class="w"> </span><span class="nx">j</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">word</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80395 | +<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">i</span><span class="p">]</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">j</span><span class="p">]</span><span class="w"> </span><span class="o">||</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">j</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">9</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80396 | +<span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">+=</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">j</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">j</span><span class="p">];</span> |
| 80397 | +<span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span> |
| 80398 | +<span class="w"> </span><span class="p">}</span> |
| 80399 | +<span class="w"> </span><span class="p">}</span> |
| 80400 | + |
| 80401 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span> |
| 80402 | +<span class="p">}</span> |
| 80403 | +</code></pre></div></td></tr></table></div> |
| 80404 | +</div> |
| 80405 | +<div class="tabbed-block"> |
| 80406 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 80407 | +<span class="normal"> 2</span> |
| 80408 | +<span class="normal"> 3</span> |
| 80409 | +<span class="normal"> 4</span> |
| 80410 | +<span class="normal"> 5</span> |
| 80411 | +<span class="normal"> 6</span> |
| 80412 | +<span class="normal"> 7</span> |
| 80413 | +<span class="normal"> 8</span> |
| 80414 | +<span class="normal"> 9</span> |
| 80415 | +<span class="normal">10</span> |
| 80416 | +<span class="normal">11</span> |
| 80417 | +<span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">compressedString</span><span class="p">(</span><span class="nx">word</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80418 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">''</span><span class="p">;</span> |
| 80419 | + |
| 80420 | +<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">1</span><span class="p">,</span><span class="w"> </span><span class="nx">j</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">word</span><span class="p">.</span><span class="nx">length</span><span class="p">;</span><span class="w"> </span><span class="nx">i</span><span class="o">++</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80421 | +<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">i</span><span class="p">]</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">j</span><span class="p">]</span><span class="w"> </span><span class="o">||</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">j</span><span class="w"> </span><span class="o">===</span><span class="w"> </span><span class="mf">9</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80422 | +<span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">+=</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">j</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">j</span><span class="p">];</span> |
| 80423 | +<span class="w"> </span><span class="nx">j</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">i</span><span class="p">;</span> |
| 80424 | +<span class="w"> </span><span class="p">}</span> |
| 80425 | +<span class="w"> </span><span class="p">}</span> |
| 80426 | + |
| 80427 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span> |
| 80428 | +<span class="p">}</span> |
| 80429 | +</code></pre></div></td></tr></table></div> |
| 80430 | +</div> |
| 80431 | +</div> |
| 80432 | +</div> |
| 80433 | +<!-- solution:end --> |
| 80434 | + |
| 80435 | +<!-- solution:start --> |
| 80436 | + |
| 80437 | +<h3 id="solution-3-regexp">Solution 3: RegExp</h3> |
| 80438 | +<div class="tabbed-set tabbed-alternate" data-tabs="3:2"><input checked="checked" id="__tabbed_3_1" name="__tabbed_3" type="radio" /><input id="__tabbed_3_2" name="__tabbed_3" type="radio" /><div class="tabbed-labels"><label for="__tabbed_3_1">TypeScript</label><label for="__tabbed_3_2">JavaScript</label></div> |
| 80439 | +<div class="tabbed-content"> |
| 80440 | +<div class="tabbed-block"> |
| 80441 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 80442 | +<span class="normal"> 2</span> |
| 80443 | +<span class="normal"> 3</span> |
| 80444 | +<span class="normal"> 4</span> |
| 80445 | +<span class="normal"> 5</span> |
| 80446 | +<span class="normal"> 6</span> |
| 80447 | +<span class="normal"> 7</span> |
| 80448 | +<span class="normal"> 8</span> |
| 80449 | +<span class="normal"> 9</span> |
| 80450 | +<span class="normal">10</span> |
| 80451 | +<span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">compressedString</span><span class="p">(</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">string</span><span class="w"> </span><span class="p">{</span> |
| 80452 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">regex</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sr">/(.)\1{0,8}/g</span><span class="p">;</span> |
| 80453 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">m</span><span class="o">:</span><span class="w"> </span><span class="kt">RegExpMatchArray</span><span class="w"> </span><span class="o">|</span><span class="w"> </span><span class="kc">null</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span> |
| 80454 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">''</span><span class="p">;</span> |
| 80455 | + |
| 80456 | +<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="nx">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">regex</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">word</span><span class="p">)))</span><span class="w"> </span><span class="p">{</span> |
| 80457 | +<span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">m</span><span class="p">[</span><span class="mf">0</span><span class="p">].</span><span class="nx">length</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">m</span><span class="p">[</span><span class="mf">1</span><span class="p">];</span> |
| 80458 | +<span class="w"> </span><span class="p">}</span> |
| 80459 | + |
| 80460 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span> |
| 80461 | +<span class="p">}</span> |
| 80462 | +</code></pre></div></td></tr></table></div> |
| 80463 | +</div> |
| 80464 | +<div class="tabbed-block"> |
| 80465 | +<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span> |
| 80466 | +<span class="normal"> 2</span> |
| 80467 | +<span class="normal"> 3</span> |
| 80468 | +<span class="normal"> 4</span> |
| 80469 | +<span class="normal"> 5</span> |
| 80470 | +<span class="normal"> 6</span> |
| 80471 | +<span class="normal"> 7</span> |
| 80472 | +<span class="normal"> 8</span> |
| 80473 | +<span class="normal"> 9</span> |
| 80474 | +<span class="normal">10</span> |
| 80475 | +<span class="normal">11</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">function</span><span class="w"> </span><span class="nx">compressedString</span><span class="p">(</span><span class="nx">word</span><span class="p">)</span><span class="w"> </span><span class="p">{</span> |
| 80476 | +<span class="w"> </span><span class="kd">const</span><span class="w"> </span><span class="nx">regex</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="sr">/(.)\1{0,8}/g</span><span class="p">;</span> |
| 80477 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="kc">null</span><span class="p">;</span> |
| 80478 | +<span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="s1">''</span><span class="p">;</span> |
| 80479 | + |
| 80480 | +<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="p">((</span><span class="nx">m</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nx">regex</span><span class="p">.</span><span class="nx">exec</span><span class="p">(</span><span class="nx">word</span><span class="p">)))</span><span class="w"> </span><span class="p">{</span> |
| 80481 | +<span class="w"> </span><span class="nx">res</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="nx">m</span><span class="p">[</span><span class="mf">0</span><span class="p">].</span><span class="nx">length</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="nx">m</span><span class="p">[</span><span class="mf">1</span><span class="p">];</span> |
| 80482 | +<span class="w"> </span><span class="p">}</span> |
| 80483 | + |
| 80484 | +<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="nx">res</span><span class="p">;</span> |
| 80485 | +<span class="p">}</span> |
| 80486 | +</code></pre></div></td></tr></table></div> |
| 80487 | +</div> |
| 80488 | +</div> |
| 80489 | +</div> |
| 80490 | +<!-- solution:end --> |
| 80491 | + |
80356 | 80492 | <!-- problem:end -->
|
80357 | 80493 |
|
80358 | 80494 |
|
@@ -80382,6 +80518,11 @@ <h3 id="solution-1-two-pointers">Solution 1: Two Pointers</h3>
|
80382 | 80518 |
|
80383 | 80519 | <nav>
|
80384 | 80520 |
|
| 80521 | + <a href="https://github.com/rain84" class="md-author" title="@rain84"> |
| 80522 | + |
| 80523 | + <img src="https://avatars.githubusercontent.com/u/1732547?v=4&size=72" alt="rain84"> |
| 80524 | + </a> |
| 80525 | + |
80385 | 80526 | <a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
|
80386 | 80527 |
|
80387 | 80528 | <img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
|
|
0 commit comments