LeetcodeアルゴリズムJava全解--12.整数回転ローマ数字


LeetcodeアルゴリズムJavaフル解答–12.整数回転ローマ数字
文書ディレクトリ
  • LeetcodeアルゴリズムJava全解--12.整数回転ローマ数字
  • アイデア
  • 結果
  • まとめ
  • コード
  • 私の答え
  • 大人たちの答え
  • 試験例
  • その他
  • タイトル
    ローマ数字には、I、V、X、L、C、D、Mの7文字が含まれています.
                   
     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はIIIではなく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の範囲であることを確認します.
    例:
      : 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.
    

    の意見を打診
    1.求商-余剰取得によるデータの取得
    自分で半分作って答えを探した
    結果
    まとめ
    ループを自分で半分作るとは思わなかったので答えを探しました
    コード#コード#
    私の答え
       /*
     * Copyright (C), 2015-2018
     * FileName: Solution012
     * Author:   zhao
     * Date:     2018/11/8 19:35
     * Description: 12.        
     * History:
     *           

    みんなの答え
     /**************************************
     *        better
     * ***********************************/
    public String better(int num) {
        String M[] = { "", "M", "MM", "MMM" };
        String C[] = { "", "C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM" };
        String X[] = { "", "X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC" };
        String I[] = { "", "I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX" };
    
        return M[num / 1000] + C[(num % 1000) / 100] + X[(num % 100) / 10] + I[num % 10];
    }
    
    

    テストケース
    @Test
    public void test012() {
        //       
        int s1 = 3;
        int s2 = 2345;
    
        //        
        String expResult1 = "III";
        String expResult2 = "MMCCCXLV";
    
        //     
        Solution012 solution012 = new Solution012();
        String result1 = solution012.intToRoman(s1);
        String result2 = solution012.intToRoman(s2);
    
        //          
        Assert.assertEquals(expResult1, result1);
        Assert.assertEquals(expResult2, result2);
    
    }
    

    その他
    コード管理コードクラウドアドレス:https://gitee.com/lizhaoandroid/LeetCodeAll.git
    他の内容を見るには、コラムや私のブログをクリックしてください.https://blog.csdn.net/cmqwan
    「大物たちの答え」のラベルはleetcodeから来ています.権利侵害は私に連絡して削除してください.
    質問があれば連絡してください、連絡先:QQ 3060507060