@@ -75432,7 +75432,7 @@ <h3 id="solution-1-counting">Solution 1: Counting</h3>
75432
75432
<p>Specifically, we use a one-dimensional array $rows$ and $cols$ of length $n$ to represent the count of each row and column, and use $dg$ and $udg$ to represent the count of the two diagonals. When a player places a character at $(i, j)$, we update the corresponding elements in the arrays $rows$, $cols$, $dg$, and $udg$ based on whether the character is <code>X</code> or <code>O</code>. After each update, we check whether the absolute value of the corresponding element equals $n$. If it does, it means that the current player has placed $n$ identical characters in that row, column, or diagonal, and the game is over. We can return the corresponding character.</p>
75433
75433
<p>Finally, we traverse the entire board. If there is a character <code></code>, it means that the game is not over yet, and we return <code>Pending</code>. Otherwise, we return <code>Draw</code>.</p>
75434
75434
<p>The time complexity is $O(n^2)$, and the space complexity is $O(n)$, where $n$ is the side length of the board.</p>
75435
- <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>
75435
+ <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">Swift </label></div>
75436
75436
<div class="tabbed-content">
75437
75437
<div class="tabbed-block">
75438
75438
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -75774,6 +75774,74 @@ <h3 id="solution-1-counting">Solution 1: Counting</h3>
75774
75774
<span class="p">}</span>
75775
75775
</code></pre></div></td></tr></table></div>
75776
75776
</div>
75777
+ <div class="tabbed-block">
75778
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
75779
+ <span class="normal"> 2</span>
75780
+ <span class="normal"> 3</span>
75781
+ <span class="normal"> 4</span>
75782
+ <span class="normal"> 5</span>
75783
+ <span class="normal"> 6</span>
75784
+ <span class="normal"> 7</span>
75785
+ <span class="normal"> 8</span>
75786
+ <span class="normal"> 9</span>
75787
+ <span class="normal">10</span>
75788
+ <span class="normal">11</span>
75789
+ <span class="normal">12</span>
75790
+ <span class="normal">13</span>
75791
+ <span class="normal">14</span>
75792
+ <span class="normal">15</span>
75793
+ <span class="normal">16</span>
75794
+ <span class="normal">17</span>
75795
+ <span class="normal">18</span>
75796
+ <span class="normal">19</span>
75797
+ <span class="normal">20</span>
75798
+ <span class="normal">21</span>
75799
+ <span class="normal">22</span>
75800
+ <span class="normal">23</span>
75801
+ <span class="normal">24</span>
75802
+ <span class="normal">25</span>
75803
+ <span class="normal">26</span>
75804
+ <span class="normal">27</span>
75805
+ <span class="normal">28</span>
75806
+ <span class="normal">29</span>
75807
+ <span class="normal">30</span>
75808
+ <span class="normal">31</span>
75809
+ <span class="normal">32</span>
75810
+ <span class="normal">33</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="kd">class</span> <span class="nc">Solution</span> <span class="p">{</span>
75811
+ <span class="kd">func</span> <span class="nf">tictactoe</span><span class="p">(</span><span class="kc">_</span> <span class="n">board</span><span class="p">:</span> <span class="p">[</span><span class="nb">String</span><span class="p">])</span> <span class="p">-></span> <span class="nb">String</span> <span class="p">{</span>
75812
+ <span class="kd">let</span> <span class="nv">n</span> <span class="p">=</span> <span class="n">board</span><span class="p">.</span><span class="bp">count</span>
75813
+ <span class="kd">var</span> <span class="nv">rows</span> <span class="p">=</span> <span class="nb">Array</span><span class="p">(</span><span class="n">repeating</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="bp">count</span><span class="p">:</span> <span class="n">n</span><span class="p">)</span>
75814
+ <span class="kd">var</span> <span class="nv">cols</span> <span class="p">=</span> <span class="nb">Array</span><span class="p">(</span><span class="n">repeating</span><span class="p">:</span> <span class="mi">0</span><span class="p">,</span> <span class="bp">count</span><span class="p">:</span> <span class="n">n</span><span class="p">)</span>
75815
+ <span class="kd">var</span> <span class="nv">diagonal</span> <span class="p">=</span> <span class="mi">0</span><span class="p">,</span> <span class="n">antiDiagonal</span> <span class="p">=</span> <span class="mi">0</span>
75816
+ <span class="kd">var</span> <span class="nv">hasEmptyGrid</span> <span class="p">=</span> <span class="kc">false</span>
75817
+
75818
+ <span class="k">for</span> <span class="n">i</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">.<</span><span class="n">n</span> <span class="p">{</span>
75819
+ <span class="k">for</span> <span class="n">j</span> <span class="k">in</span> <span class="mf">0.</span><span class="p">.<</span><span class="n">n</span> <span class="p">{</span>
75820
+ <span class="kd">let</span> <span class="nv">c</span> <span class="p">=</span> <span class="nb">Array</span><span class="p">(</span><span class="n">board</span><span class="p">[</span><span class="n">i</span><span class="p">])[</span><span class="n">j</span><span class="p">]</span>
75821
+ <span class="k">if</span> <span class="n">c</span> <span class="p">==</span> <span class="s">" "</span> <span class="p">{</span>
75822
+ <span class="n">hasEmptyGrid</span> <span class="p">=</span> <span class="kc">true</span>
75823
+ <span class="k">continue</span>
75824
+ <span class="p">}</span>
75825
+ <span class="kd">let</span> <span class="nv">value</span> <span class="p">=</span> <span class="n">c</span> <span class="p">==</span> <span class="s">"X"</span> <span class="p">?</span> <span class="mi">1</span> <span class="p">:</span> <span class="o">-</span><span class="mi">1</span>
75826
+ <span class="n">rows</span><span class="p">[</span><span class="n">i</span><span class="p">]</span> <span class="o">+=</span> <span class="n">value</span>
75827
+ <span class="n">cols</span><span class="p">[</span><span class="n">j</span><span class="p">]</span> <span class="o">+=</span> <span class="n">value</span>
75828
+ <span class="k">if</span> <span class="n">i</span> <span class="p">==</span> <span class="n">j</span> <span class="p">{</span>
75829
+ <span class="n">diagonal</span> <span class="o">+=</span> <span class="n">value</span>
75830
+ <span class="p">}</span>
75831
+ <span class="k">if</span> <span class="n">i</span> <span class="o">+</span> <span class="n">j</span> <span class="p">==</span> <span class="n">n</span> <span class="o">-</span> <span class="mi">1</span> <span class="p">{</span>
75832
+ <span class="n">antiDiagonal</span> <span class="o">+=</span> <span class="n">value</span>
75833
+ <span class="p">}</span>
75834
+ <span class="k">if</span> <span class="bp">abs</span><span class="p">(</span><span class="n">rows</span><span class="p">[</span><span class="n">i</span><span class="p">])</span> <span class="p">==</span> <span class="n">n</span> <span class="o">||</span> <span class="bp">abs</span><span class="p">(</span><span class="n">cols</span><span class="p">[</span><span class="n">j</span><span class="p">])</span> <span class="p">==</span> <span class="n">n</span> <span class="o">||</span> <span class="bp">abs</span><span class="p">(</span><span class="n">diagonal</span><span class="p">)</span> <span class="p">==</span> <span class="n">n</span> <span class="o">||</span> <span class="bp">abs</span><span class="p">(</span><span class="n">antiDiagonal</span><span class="p">)</span> <span class="p">==</span> <span class="n">n</span> <span class="p">{</span>
75835
+ <span class="k">return</span> <span class="nb">String</span><span class="p">(</span><span class="n">c</span><span class="p">)</span>
75836
+ <span class="p">}</span>
75837
+ <span class="p">}</span>
75838
+ <span class="p">}</span>
75839
+
75840
+ <span class="k">return</span> <span class="n">hasEmptyGrid</span> <span class="p">?</span> <span class="s">"Pending"</span> <span class="p">:</span> <span class="s">"Draw"</span>
75841
+ <span class="p">}</span>
75842
+ <span class="p">}</span>
75843
+ </code></pre></div></td></tr></table></div>
75844
+ </div>
75777
75845
</div>
75778
75846
</div>
75779
75847
<!-- end -->
@@ -75805,6 +75873,11 @@ <h3 id="solution-1-counting">Solution 1: Counting</h3>
75805
75873
75806
75874
<nav>
75807
75875
75876
+ <a href="https://github.com/klever34" class="md-author" title="@klever34">
75877
+
75878
+ <img src="https://avatars.githubusercontent.com/u/12745225?v=4&size=72" alt="klever34">
75879
+ </a>
75880
+
75808
75881
<a href="https://github.com/yanglbme" class="md-author" title="@yanglbme">
75809
75882
75810
75883
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
0 commit comments