【13】LeetCode

1.トピック

ここに画像を挿入説明
それは単純な質問です

2.アイデア

トラバースチャネリングがプラスに「私は」発生し、シンプルかつ粗製の文字を解決するには「V」を表示されたプラス5、ように「X」にプラス10に表示され、そして。文字を見てIVをチャネリングに表示されますが、2、マイナス2マイナスはIXに見えるように見えますが、XLはマイナス20を表示され、マイナス20は、2つのマイナス200の下XCを、表示されます。一度だけ、彼はIX 9は一度だけ表示されます表現IV 4として、これを基に表されます。

3.マッピングパンチ

ここに画像を挿入説明
コードを貼り付けます。

class Solution {
    public int romanToInt(String s) {
        int val = 0;
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < s.length(); i++) {
            switch (s.charAt(i)) {
                case 'I':
                    val++;
                    break;
                case 'V':
                    val += 5;
                    break;
                case 'X':
                    val += 10;
                    break;
                case 'L':
                    val += 50;
                    break;
                case 'C':
                    val += 100;
                    break;
                case 'D':
                    val += 500;
                    break;
                case 'M':
                    val += 1000;
                    break;
            }
        }
        if (s.contains("IV")) {
            val -= 2;
        }
        if (s.contains("IX")) {
            val -= 2;
        }
        if (s.contains("XL")) {
            val -= 20;
        }
        if (s.contains("XC")) {
            val -= 20;
        }
        if (s.contains("CD")) {
            val -= 200;
        }
        if (s.contains("CM")) {
            val -= 200;
        }
        return val;
    }
}

おすすめ

転載: blog.csdn.net/u012385160/article/details/89251229