天天看點

leetCode 12. Integer to Roman | 字元串 | Medium

12. Integer to Roman

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

題目大意:

将一個給定的阿拉伯數字轉換成羅馬數字。

思路:

這題看到的時候,想的太多。

其實很簡單,将千位,百位,十位,個位都表示出來,然後組合即可。

代碼如下:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

<code>class</code> <code>Solution {</code>

<code>public</code><code>:</code>

<code>    </code><code>string intToRoman(</code><code>int</code> <code>num) {</code>

<code>        </code><code>string thousands[4] = {</code><code>""</code><code>,</code><code>"M"</code><code>,</code><code>"MM"</code><code>,</code><code>"MMM"</code><code>};</code>

<code>        </code><code>string hundreds[10] = {</code><code>""</code><code>,</code><code>"C"</code><code>,</code><code>"CC"</code><code>,</code><code>"CCC"</code><code>,</code><code>"CD"</code><code>,</code><code>"D"</code><code>,</code><code>"DC"</code><code>,</code><code>"DCC"</code><code>,</code><code>"DCCC"</code><code>,</code><code>"CM"</code><code>};</code>

<code>        </code><code>string tens[10] = {</code><code>""</code><code>,</code><code>"X"</code><code>,</code><code>"XX"</code><code>,</code><code>"XXX"</code><code>,</code><code>"XL"</code><code>,</code><code>"L"</code><code>,</code><code>"LX"</code><code>,</code><code>"LXX"</code><code>,</code><code>"LXXX"</code><code>,</code><code>"XC"</code><code>};</code>

<code>        </code><code>string units[10] = {</code><code>""</code><code>,</code><code>"I"</code><code>,</code><code>"II"</code><code>,</code><code>"III"</code><code>,</code><code>"IV"</code><code>,</code><code>"V"</code><code>,</code><code>"VI"</code><code>,</code><code>"VII"</code><code>,</code><code>"VIII"</code><code>,</code><code>"IX"</code><code>};</code>

<code>        </code><code>string * hits[4] = {units,tens,hundreds,thousands};</code>

<code>        </code> 

<code>        </code><code>string result;</code>

<code>        </code><code>int</code> <code>index = 0;</code>

<code>        </code><code>while</code> <code>(num &gt; 0)</code>

<code>        </code><code>{</code>

<code>            </code><code>result = hits[index][num % 10] + result;</code>

<code>            </code><code>num = num / 10;</code>

<code>            </code><code>index++;</code>

<code>        </code><code>}</code>

<code>        </code><code>return</code> <code>result;</code>

<code>    </code><code>}</code>

<code>};</code>

總結:

有時候題目沒有那麼難,不要自己搞的很複雜。問題簡單化。簡單化。。。

本文轉自313119992 51CTO部落格,原文連結:http://blog.51cto.com/qiaopeng688/1840309

繼續閱讀