LeetCode 13.ローマ数字回転整数(Java)

2094 ワード

タイトルの説明:
ローマ数字には次の7文字が含まれています.  IVXL , C , D  および  M .
              
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

例えば、ローマ数字2は  II  ,2つの並列の1です.12書き込み  XII  ,つまり  X  +  II  . 27書く   XXVII、すなわち  XX  +  V  +  II  .
通常、ローマ数字の中で小さい数字は大きな数字の右側にあります.しかし、例えば4は書かないという特例もあります.  IIIIではなく  IV .数字1は数字5の左側にあり、表す数は大数5から小数1を減らした数値4に等しい.同様に、数字9は  IX .この特殊なルールは、次の6つの場合にのみ適用されます.
  • I  に置くことができます  V  (5)と  X  (10)の左に、4と9を表します.
  • X  に置くことができます  L  (50)と  C  (100)の左側に、40と 90. 
  • C  に置くことができます  D  (500)と  M  (1000)の左側に、 400と 900.

  • ローマ数字を指定し、整数に変換します.入力確認は1 3999の範囲内です.
    例 1:
      : "III"
      : 3

    例 2:
      : "IV"
      : 4

    例 3:
      : "IX"
      : 9

    例 4:
      : "LVIII"
      : 58
      : L = 50, V= 5, III = 3.
    

    例 5:
      : "MCMXCIV"
      : 1994
      : M = 1000, CM = 900, XC = 90, IV = 4.

    問題解決の考え方:
    (1.ifを常に加算し、コードが最も長く、使用時間が最も短い...
        2.配列を設定し、各ローマ数字を整数に変換し、加減を判断する
        3.ハッシュテーブルの設定)
    コード:
    /**
     * Created by YTY on 2018/12/31 0031.
     *               
     I             1
     V             5
     X             10
     L             50
     C             100
     D             500
     M             1000
     */
    public class five {
        public static void main(String[] args){
        }
        public int romanToInt(String s) {
            int num=0;
            int i=0;
            int a[]=new int[s.length()];
            while(i