[LeetCode] 12.整数ローマへ

整数変換ローマ数字。13個の質問はちょうど反対です。

質問の意味はローマ数字に変換してください、整数を与えることです。次のようにルールがあり、

記号値
I 1
5 V
X 10
L 50
C 100
D 500
M 1000年

例、

例1:

入力:3
出力: "III"

例2:

入力:4
出力: "IV"

例3:

入力:9
出力: "IX"

例4:

入力:58
出力: "LVIII"
説明:L = 50、V = 5、III = 3。

例5:

入力:1994
出力: "MCMXCIV"
説明:M = 1000、CM = 900、XC = 90およびIV = 4。

この問題は、任意のアルゴリズムやアイデアを伴わず、単に変換されていません。私は個人的に、私は比較的友好的なアプローチを与えると感じています。各所与のローマ数字とそれらの対応する整数との間の最初のマッピングは、次にXを処理する整数を、ローマ数字Xが少ない最大よりも見つけます。それにはJavaScriptですので、ので、ここであなたはそれなしで直接CONCATENATE文字列はJavaのようなのStringBuilder(12行)を作成することができます。

時間O(N)

スペースO(n)は、

1  / * *
 2  * @param {数} NUM
 3  * @return {文字列}
 4   * / 
5  VAR intToRoman = 関数(NUM){
 6      VARのリスト= [ 'M'、 'CM'、 'D'、「CD 」、 'C'、 'XC'、 'L'、 'XL'、 'X'、 'IX'、 'V'、 'IV'、 'I' ]。
7      VAR VALUELIST = [1000、900、500、400、100、90、50、40、10、9、5、4、1 ]。
8つ     のvar RES = '' ;
9      ながら(!NUM == 0 ){
 10          VAR I <valueList.length; iが0 =             VALUELIST [I]){
 12の                  RES + = リスト[i]は、
13                  NUM - = VALUELIST [I]。
14                  ブレーク;
15              }
 16          }
 17      }
 18の     リターンRES。
19 }。

 

おすすめ

転載: www.cnblogs.com/aaronliu1991/p/12239483.html