@@ -76564,7 +76564,7 @@ <h2 id="solutions">Solutions</h2>
76564
76564
<h3 id="solution-1-greedy">Solution 1: Greedy</h3>
76565
76565
<p>We can first list all possible symbols $cs$ and their corresponding values $vs$, then enumerate each value $vs[i]$ from large to small. Each time, we use as many symbols $cs[i]$ corresponding to this value as possible, until the number $num$ becomes $0$.</p>
76566
76566
<p>The time complexity is $O(m)$, and the space complexity is $O(m)$. Here, $m$ is the number of symbols.</p>
76567
- <div class="tabbed-set tabbed-alternate" data-tabs="1:7 "><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" /><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">C#</label><label for="__tabbed_1_7 ">PHP</label></div>
76567
+ <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"> C#</label><label for="__tabbed_1_8 ">PHP</label></div>
76568
76568
<div class="tabbed-content">
76569
76569
<div class="tabbed-block">
76570
76570
<div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
@@ -76718,6 +76718,42 @@ <h3 id="solution-1-greedy">Solution 1: Greedy</h3>
76718
76718
<span class="normal">11</span>
76719
76719
<span class="normal">12</span>
76720
76720
<span class="normal">13</span>
76721
+ <span class="normal">14</span>
76722
+ <span class="normal">15</span>
76723
+ <span class="normal">16</span>
76724
+ <span class="normal">17</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>
76725
+ <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">int_to_roman</span><span class="p">(</span><span class="n">num</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="nb">String</span><span class="w"> </span><span class="p">{</span>
76726
+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">cs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="s">"M"</span><span class="p">,</span><span class="w"> </span><span class="s">"CM"</span><span class="p">,</span><span class="w"> </span><span class="s">"D"</span><span class="p">,</span><span class="w"> </span><span class="s">"CD"</span><span class="p">,</span><span class="w"> </span><span class="s">"C"</span><span class="p">,</span><span class="w"> </span><span class="s">"XC"</span><span class="p">,</span><span class="w"> </span><span class="s">"L"</span><span class="p">,</span><span class="w"> </span><span class="s">"XL"</span><span class="p">,</span><span class="w"> </span><span class="s">"X"</span><span class="p">,</span><span class="w"> </span><span class="s">"IX"</span><span class="p">,</span><span class="w"> </span><span class="s">"V"</span><span class="p">,</span><span class="w"> </span><span class="s">"IV"</span><span class="p">,</span><span class="w"> </span><span class="s">"I"</span><span class="p">];</span>
76727
+ <span class="w"> </span><span class="kd">let</span><span class="w"> </span><span class="n">vs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p">[</span><span class="mi">1000</span><span class="p">,</span><span class="w"> </span><span class="mi">900</span><span class="p">,</span><span class="w"> </span><span class="mi">500</span><span class="p">,</span><span class="w"> </span><span class="mi">400</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">90</span><span class="p">,</span><span class="w"> </span><span class="mi">50</span><span class="p">,</span><span class="w"> </span><span class="mi">40</span><span class="p">,</span><span class="w"> </span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">9</span><span class="p">,</span><span class="w"> </span><span class="mi">5</span><span class="p">,</span><span class="w"> </span><span class="mi">4</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">];</span>
76728
+ <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">num</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">num</span><span class="p">;</span>
76729
+ <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">ans</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">String</span><span class="p">::</span><span class="n">new</span><span class="p">();</span>
76730
+
76731
+ <span class="w"> </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="n">i</span><span class="p">,</span><span class="w"> </span><span class="o">&</span><span class="n">v</span><span class="p">)</span><span class="w"> </span><span class="k">in</span><span class="w"> </span><span class="n">vs</span><span class="p">.</span><span class="n">iter</span><span class="p">().</span><span class="n">enumerate</span><span class="p">()</span><span class="w"> </span><span class="p">{</span>
76732
+ <span class="w"> </span><span class="k">while</span><span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">>=</span><span class="w"> </span><span class="n">v</span><span class="w"> </span><span class="p">{</span>
76733
+ <span class="w"> </span><span class="n">num</span><span class="w"> </span><span class="o">-=</span><span class="w"> </span><span class="n">v</span><span class="p">;</span>
76734
+ <span class="w"> </span><span class="n">ans</span><span class="p">.</span><span class="n">push_str</span><span class="p">(</span><span class="n">cs</span><span class="p">[</span><span class="n">i</span><span class="p">]);</span>
76735
+ <span class="w"> </span><span class="p">}</span>
76736
+ <span class="w"> </span><span class="p">}</span>
76737
+
76738
+ <span class="w"> </span><span class="n">ans</span>
76739
+ <span class="w"> </span><span class="p">}</span>
76740
+ <span class="p">}</span>
76741
+ </code></pre></div></td></tr></table></div>
76742
+ </div>
76743
+ <div class="tabbed-block">
76744
+ <div class="highlight"><table class="highlighttable"><tr><td class="linenos"><div class="linenodiv"><pre><span></span><span class="normal"> 1</span>
76745
+ <span class="normal"> 2</span>
76746
+ <span class="normal"> 3</span>
76747
+ <span class="normal"> 4</span>
76748
+ <span class="normal"> 5</span>
76749
+ <span class="normal"> 6</span>
76750
+ <span class="normal"> 7</span>
76751
+ <span class="normal"> 8</span>
76752
+ <span class="normal"> 9</span>
76753
+ <span class="normal">10</span>
76754
+ <span class="normal">11</span>
76755
+ <span class="normal">12</span>
76756
+ <span class="normal">13</span>
76721
76757
<span class="normal">14</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>
76722
76758
<span class="w"> </span><span class="k">public</span><span class="w"> </span><span class="kt">string</span><span class="w"> </span><span class="nf">IntToRoman</span><span class="p">(</span><span class="kt">int</span><span class="w"> </span><span class="n">num</span><span class="p">)</span><span class="w"> </span><span class="p">{</span>
76723
76759
<span class="w"> </span><span class="n">List</span><span class="o"><</span><span class="kt">string</span><span class="o">></span><span class="w"> </span><span class="n">cs</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="k">new</span><span class="w"> </span><span class="n">List</span><span class="o"><</span><span class="kt">string</span><span class="o">></span><span class="p">{</span><span class="s">"M"</span><span class="p">,</span><span class="w"> </span><span class="s">"CM"</span><span class="p">,</span><span class="w"> </span><span class="s">"D"</span><span class="p">,</span><span class="w"> </span><span class="s">"CD"</span><span class="p">,</span><span class="w"> </span><span class="s">"C"</span><span class="p">,</span><span class="w"> </span><span class="s">"XC"</span><span class="p">,</span><span class="w"> </span><span class="s">"L"</span><span class="p">,</span><span class="w"> </span><span class="s">"XL"</span><span class="p">,</span><span class="w"> </span><span class="s">"X"</span><span class="p">,</span><span class="w"> </span><span class="s">"IX"</span><span class="p">,</span><span class="w"> </span><span class="s">"V"</span><span class="p">,</span><span class="w"> </span><span class="s">"IV"</span><span class="p">,</span><span class="w"> </span><span class="s">"I"</span><span class="p">};</span>
@@ -76754,54 +76790,24 @@ <h3 id="solution-1-greedy">Solution 1: Greedy</h3>
76754
76790
<span class="normal">17</span>
76755
76791
<span class="normal">18</span>
76756
76792
<span class="normal">19</span>
76757
- <span class="normal">20</span>
76758
- <span class="normal">21</span>
76759
- <span class="normal">22</span>
76760
- <span class="normal">23</span>
76761
- <span class="normal">24</span>
76762
- <span class="normal">25</span>
76763
- <span class="normal">26</span>
76764
- <span class="normal">27</span>
76765
- <span class="normal">28</span>
76766
- <span class="normal">29</span>
76767
- <span class="normal">30</span>
76768
- <span class="normal">31</span>
76769
- <span class="normal">32</span>
76770
- <span class="normal">33</span>
76771
- <span class="normal">34</span>
76772
- <span class="normal">35</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="x">class Solution {</span>
76793
+ <span class="normal">20</span></pre></div></td><td class="code"><div><pre><span></span><code><span class="x">class Solution {</span>
76773
76794
<span class="x"> /**</span>
76774
- <span class="x"> * @param int $num</span>
76775
- <span class="x"> * @return string </span>
76795
+ <span class="x"> * @param Integer $num</span>
76796
+ <span class="x"> * @return String </span>
76776
76797
<span class="x"> */</span>
76777
-
76778
76798
<span class="x"> function intToRoman($num) {</span>
76779
- <span class="x"> $values = [</span>
76780
- <span class="x"> 'M' => 1000,</span>
76781
- <span class="x"> 'CM' => 900,</span>
76782
- <span class="x"> 'D' => 500,</span>
76783
- <span class="x"> 'CD' => 400,</span>
76784
- <span class="x"> 'C' => 100,</span>
76785
- <span class="x"> 'XC' => 90,</span>
76786
- <span class="x"> 'L' => 50,</span>
76787
- <span class="x"> 'XL' => 40,</span>
76788
- <span class="x"> 'X' => 10,</span>
76789
- <span class="x"> 'IX' => 9,</span>
76790
- <span class="x"> 'V' => 5,</span>
76791
- <span class="x"> 'IV' => 4,</span>
76792
- <span class="x"> 'I' => 1,</span>
76793
- <span class="x"> ];</span>
76794
-
76795
- <span class="x"> $result = '';</span>
76796
-
76797
- <span class="x"> foreach ($values as $roman => $value) {</span>
76798
- <span class="x"> while ($num >= $value) {</span>
76799
- <span class="x"> $result .= $roman;</span>
76800
- <span class="x"> $num -= $value;</span>
76799
+ <span class="x"> $cs = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I'];</span>
76800
+ <span class="x"> $vs = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1];</span>
76801
+ <span class="x"> $ans = '';</span>
76802
+
76803
+ <span class="x"> foreach ($vs as $i => $v) {</span>
76804
+ <span class="x"> while ($num >= $v) {</span>
76805
+ <span class="x"> $num -= $v;</span>
76806
+ <span class="x"> $ans .= $cs[$i];</span>
76801
76807
<span class="x"> }</span>
76802
76808
<span class="x"> }</span>
76803
76809
76804
- <span class="x"> return $result ;</span>
76810
+ <span class="x"> return $ans ;</span>
76805
76811
<span class="x"> }</span>
76806
76812
<span class="x">}</span>
76807
76813
</code></pre></div></td></tr></table></div>
0 commit comments