@@ -86054,7 +86054,7 @@ <h3 id="solution-1-reverse-half-of-the-number">Solution 1: Reverse Half of the N
86054
86054
<p>By continuously multiplying the last digit to the variable $y$, we can get the number in reverse order.</p>
86055
86055
<p>In the code implementation, we can repeatedly "take out" the last digit of $x$ and "add" it to the end of $y$, loop until $y \ge x$. If at this time $x = y$, or $x = y / 10$, then $x$ is a palindrome.</p>
86056
86056
<p>The time complexity is $O(\log_{10}(n))$, where $n$ is $x$. For each iteration, we will divide the input by $10$, so the time complexity is $O(\log_{10}(n))$. The space complexity is $O(1)$.</p>
86057
- <div class="tabbed-set tabbed-alternate" data-tabs="1:8 "><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" /><input id="__tabbed_1_8" 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><label for="__tabbed_1_8">PHP</label></div>
86057
+ <div class="tabbed-set tabbed-alternate" data-tabs="1:9 "><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" /><input id="__tabbed_1_8" name="__tabbed_1" type="radio" /><input id="__tabbed_1_9" 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><label for="__tabbed_1_8">C#</label><label for="__tabbed_1_9 ">PHP</label></div>
86058
86058
<div class="tabbed-content">
86059
86059
<div class="tabbed-block">
86060
86060
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal">1</span>
@@ -86187,16 +86187,14 @@ <h3 id="solution-1-reverse-half-of-the-number">Solution 1: Reverse Half of the N
86187
86187
<span class="normal">10</span>
86188
86188
<span class="normal">11</span>
86189
86189
<span class="normal">12</span>
86190
- <span class="normal">13</span>
86191
- <span class="normal">14</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>
86190
+ <span class="normal">13</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>
86192
86191
<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">is_palindrome</span><span class="p">(</span><span class="k">mut</span><span class="w"> </span><span class="n">x</span><span class="p">:</span><span class="w"> </span><span class="kt">i32</span><span class="p">)</span><span class="w"> </span><span class="p">-></span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="p">{</span>
86193
- <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">% </span><span class="w"> </span><span class="mi">10 </span><span class="w"> </span><span class="o">== </span><span class="w"> </span><span class="mi">0 </span><span class="w"> </span><span class="o">&& </span><span class="w"> </span><span class="n">x </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="p">{</span>
86192
+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">!= </span><span class="w"> </span><span class="mi">0 </span><span class="w"> </span><span class="o">&& </span><span class="w"> </span><span class="n">x </span><span class="w"> </span><span class="o">% </span><span class="w"> </span><span class="mi">10 </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="p">{</span>
86194
86193
<span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="kc">false</span><span class="p">;</span>
86195
86194
<span class="w"> </span><span class="p">}</span>
86196
86195
<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">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86197
86196
<span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="p">{</span>
86198
- <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">*=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86199
- <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">+=</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86197
+ <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86200
86198
<span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86201
86199
<span class="w"> </span><span class="p">}</span>
86202
86200
<span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">10</span>
@@ -86246,16 +86244,52 @@ <h3 id="solution-1-reverse-half-of-the-number">Solution 1: Reverse Half of the N
86246
86244
<span class="normal"> 9</span>
86247
86245
<span class="normal">10</span>
86248
86246
<span class="normal">11</span>
86249
- <span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="x">class Solution {</span>
86247
+ <span class="normal">12</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="k">public</span><span class="w"> </span><span class="k">class</span><span class="w"> </span><span class="nc">Solution</span><span class="w"> </span><span class="p">{</span>
86248
+ <span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">bool</span><span class="w"> </span><span class="nf">IsPalindrome</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">x</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86249
+ <span class="w"> </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="p">(</span><span class="n">x</span><span class="w"> </span><span class="o">></span><span class="w"> </span><span class="mi">0</span><span class="w"> </span><span class="o">&&</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">10</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="p">{</span>
86250
+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="k">false</span><span class="p">;</span>
86251
+ <span class="w"> </span><span class="p">}</span>
86252
+ <span class="w"> </span><span class="kt">int</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span>
86253
+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(;</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o"><</span><span class="w"> </span><span class="n">x</span><span class="p">;</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">/=</span><span class="w"> </span><span class="mi">10</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
86254
+ <span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">*</span><span class="w"> </span><span class="mi">10</span><span class="w"> </span><span class="o">+</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">%</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86255
+ <span class="w"> </span><span class="p">}</span>
86256
+ <span class="w"> </span><span class="k">return</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">||</span><span class="w"> </span><span class="n">x</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="n">y</span><span class="w"> </span><span class="o">/</span><span class="w"> </span><span class="mi">10</span><span class="p">;</span>
86257
+ <span class="w"> </span><span class="p">}</span>
86258
+ <span class="p">}</span>
86259
+ </code></pre></div></td></tr></table></div>
86260
+ </div>
86261
+ <div class="tabbed-block">
86262
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
86263
+ <span class="normal"> 2</span>
86264
+ <span class="normal"> 3</span>
86265
+ <span class="normal"> 4</span>
86266
+ <span class="normal"> 5</span>
86267
+ <span class="normal"> 6</span>
86268
+ <span class="normal"> 7</span>
86269
+ <span class="normal"> 8</span>
86270
+ <span class="normal"> 9</span>
86271
+ <span class="normal">10</span>
86272
+ <span class="normal">11</span>
86273
+ <span class="normal">12</span>
86274
+ <span class="normal">13</span>
86275
+ <span class="normal">14</span>
86276
+ <span class="normal">15</span>
86277
+ <span class="normal">16</span>
86278
+ <span class="normal">17</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="x">class Solution {</span>
86250
86279
<span class="x"> /**</span>
86251
- <span class="x"> * @param int $x</span>
86252
- <span class="x"> * @return boolean </span>
86280
+ <span class="x"> * @param Integer $x</span>
86281
+ <span class="x"> * @return Boolean </span>
86253
86282
<span class="x"> */</span>
86254
-
86255
86283
<span class="x"> function isPalindrome($x) {</span>
86256
- <span class="x"> $str = (string) $x;</span>
86257
- <span class="x"> $str_reverse = strrev($str);</span>
86258
- <span class="x"> return $str === $str_reverse;</span>
86284
+ <span class="x"> if ($x < 0 || ($x && $x % 10 == 0)) {</span>
86285
+ <span class="x"> return false;</span>
86286
+ <span class="x"> }</span>
86287
+ <span class="x"> $y = 0;</span>
86288
+ <span class="x"> while ($x > $y) {</span>
86289
+ <span class="x"> $y = $y * 10 + ($x % 10);</span>
86290
+ <span class="x"> $x = (int) ($x / 10);</span>
86291
+ <span class="x"> }</span>
86292
+ <span class="x"> return $x == $y || $x == (int) ($y / 10);</span>
86259
86293
<span class="x"> }</span>
86260
86294
<span class="x">}</span>
86261
86295
</code></pre></div></td></tr></table></div>
@@ -86298,6 +86332,11 @@ <h3 id="solution-1-reverse-half-of-the-number">Solution 1: Reverse Half of the N
86298
86332
<img src="https://avatars.githubusercontent.com/u/21008209?v=4&size=72" alt="yanglbme">
86299
86333
</a>
86300
86334
86335
+ <a href="https://github.com/djvelimir" class="md-author" title="@djvelimir">
86336
+
86337
+ <img src="https://avatars.githubusercontent.com/u/20823832?v=4&size=72" alt="djvelimir">
86338
+ </a>
86339
+
86301
86340
<a href="https://github.com/ZylalMinollari" class="md-author" title="@ZylalMinollari">
86302
86341
86303
86342
<img src="https://avatars.githubusercontent.com/u/84593674?v=4&size=72" alt="ZylalMinollari">
0 commit comments