整数変換ローマ数字。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 }。