1. 程式人生 > >13.羅馬數字轉整數(Roman to Integer)

13.羅馬數字轉整數(Roman to Integer)

題目描述

給定一個羅馬數字,將其轉換成整數。

返回的結果要求在 1 到 3999 的範圍內。

解題思路

public int romanToInt(String s) {
        if (s == null || s.length() == 0)
            return -1;

        HashMap<Character, Integer> map = new HashMap<Character, Integer>();
        map.put('I', 1);
        map.put('V', 5);
        map.put('X', 10);
        map.put('L', 50);
        map.put('C', 100);
        map.put('D', 500);
        map.put('M', 1000);
        int len = s.length(), result = map.get(s.charAt(len - 1));
        for (int i = len - 2; i >= 0; i--) {
            if (map.get(s.charAt(i)) >= map.get(s.charAt(i + 1)))
                result += map.get(s.charAt(i));
            else
                result -= map.get(s.charAt(i));
        }
        return result;
}

相關推薦

leetcode-13-羅馬數字整數(roman to integer)-java

題目及測試 package pid013; /*羅馬數字轉整數 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L

【LeetCode】#13羅馬數字整數(Roman to Integer)

【LeetCode】#13羅馬數字轉整數(Roman to Integer) 題目描述 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 羅馬數字 2 寫做 II ,即為兩

LeetCode 13. 羅馬數字整數 Roman to Integer(C語言)

題目描述: 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X

13.羅馬數字整數(Roman to Integer)

題目描述給定一個羅馬數字,將其轉換成整數。返回的結果要求在 1 到 3999 的範圍內。解題思路public int romanToInt(String s) { if (s == null || s.length() == 0) re

[LeetCode]13. 羅馬數字整數Roman numeral to integer) Java

一、題目: LeetCode地址 羅馬數字包含以下七種字元:I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L

LeetCode : 13. 羅馬數字整數Roman To Integer)解答

13. 羅馬數字轉整數 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5

Leetcode 13 羅馬數字整數

lee turn style 數字 多少 數字字符串 羅馬 leetcode 位置 將每個羅馬字母對應的整數寫成字典格式,將輸入的羅馬數字字符串轉換成列表形式 一開始想的是怎麽將羅馬字母的對應位置找出來,利用列表循環相加 後來發現了規律,‘IV‘和’I‘+‘V‘只相差2,

leetcode 13. 羅馬數字整數(java)

羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C

LeetCode題庫13. 羅馬數字整數(c++實現)

input rcp name iii leetcode nbsp out pre sin 問題描述: 羅馬數字包含以下七種字符: I, V, X, L,C,D 和 M。 字符 數值 I 1 V 5

【LeetCode】 13 羅馬數字整數

解題思路: 1 很明顯,有兩種字元形式:一個字母和兩個字母,可以進行分別討論。 2 對兩種分別建字典,分別處理。 3 這種方法思路較清晰,但是較慢;較快的思路是對字串連續讀,如果右邊字母表示的數字比左邊的大,則在結果中減去此值,程式碼就不貼了。 程式碼: class So

LeetCode-13. 羅馬數字整數

題目地址:https://leetcode-cn.com/problems/roman-to-integer/ 題意:字面意思 思路:模擬即可 程式碼: class Solution { public: int romanToInt(string s) { m

[Leetcode] 13. 羅馬數字整數 java

羅馬數字包含以下七種字元:I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D

13. 羅馬數字整數(leetcode)

羅馬數字包含以下七種字元:I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D

LeetCode 13.羅馬數字整數

目錄 0. 題目描述 1. 解題分析  (1)思路也很簡單:逐一讀取字串,根據轉換規則進行轉換。為了減少if邏輯判斷,用了map來儲存羅馬數字與對應的整數,增加了一點空間消耗。 #include<string> #include<ma

LeetCode.13. 羅馬數字整數

羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 10

Leetcode 13.羅馬數字整數(Python3)

13.羅馬數字轉整數 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L

Leetcode ---- 13.羅馬數字整數

題目: 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100

【Leetcode_總結】13. 羅馬數字整數

羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D

LeetCode :C語言 13羅馬數字整數

這道題寫的時候思路也比較清晰,唯一有點困惑的是判斷字串的長度。(用了while迴圈來判斷。) int charToInt(char ch) { switch(ch) { case 'I':return 1; case 'V

13. 羅馬數字整數

羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D