Roman to Integer 羅馬數字轉化成整數
題目:https://leetcode.com/problems/roman-to-integer/description/
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
題目大意:將羅馬數字轉換成整數。
解法:
1、羅馬數字放進map,數字一一對應,
2、字串每個都分割,從map中取出對應的值
3、第一,如果當前數字是最後一個數字,或者之後的數字小於等於他(<=)的話,則加上當前數字
第二,其他情況則減去這個數字
public static int romanToInt(String s) { int result=0; //1、羅馬數字放進map,數字一一對應, Map<Character, Integer> romanInteger=new HashMap<Character, Integer>(); romanInteger.put('I', 1); romanInteger.put('V', 5); romanInteger.put('X', 10); romanInteger.put('L', 50); romanInteger.put('C', 100); romanInteger.put('D', 500); romanInteger.put('M', 1000); //2、字串每個都分割,從map中取出對應的值 for (int i = 0; i < s.length(); i++) { if(i==s.length()-1){ //如果當前數字是最後一個數字,加上 result+=romanInteger.get(s.charAt(i)); continue; } //之後的數字比它小的話,則加上當前數字 boolean compare=false; for (int j = i+1; j < s.length(); j++) { if(romanInteger.get(s.charAt(i))<romanInteger.get(s.charAt(j))){ compare=true; } } if(!compare){ result+=romanInteger.get(s.charAt(i)); continue; } //除此之外,則減去當前數字 result-=romanInteger.get(s.charAt(i)); } return result; }
參考自:http://www.cnblogs.com/grandyang/p/4120857.html
相關推薦
LeetCode--Roman to Integer 羅馬數字轉化成整數
題目:Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 羅馬數轉化成數字問題,我們需要對於羅馬數字很
Roman to Integer 羅馬數字轉化成整數
題目:https://leetcode.com/problems/roman-to-integer/description/ Given a roman numeral, convert it to an integer. Input is guaranteed t
[LeetCode]13. Roman to Integer(羅馬數字轉化為整數)
13. Roman to Integer 點選檢視相關題 整數轉化為羅馬數字 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the ran
LeetCode 13.Roman to Integer (羅馬數字轉整數)
題目描述: 羅馬數字包含以下七種字元:I, V, X, L,C,D ,M。 符 數值 I 1 V 5 X 10 L 50 C 100
Roman to Integer 羅馬數字轉整數
羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D
[LeetCode]13. Roman to Integer羅馬數字轉整數
instead placed man for sym () 兩種 字符 together Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol
【leetcode】#陣列【Python】13. Roman to Integer 羅馬數字轉整數
連結: 題目: 給定一個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的範圍內。 示例 1: 輸入: “III” 輸出: 3 示例 2: 輸入: “IV” 輸出: 4 示例 3: 輸入
leetcode Roman to Integer羅馬數字與阿拉伯數字互轉
羅馬數字規則: 1, 羅馬數字共有7個,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)。 羅馬數字中沒有“0”。 2, 重複次數:一個羅馬數字最多重複3次。
Roman to Integer 羅馬數字轉阿拉伯數字@LeetCode
思路:從前往後遍歷羅馬數字,如果某個數比前一個數小,則把該數加入到結果中;反之,則在結果中兩次減去前一個數並加上當前這個數;package Level2; /** * Roman to Integer * * Given a roman numeral, conv
LeetCode Roman to Integer 羅馬數字轉阿拉伯數字
Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t
Roman to Integer(羅馬數字轉換成整數)
**Problem:Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.** *構數規則:基本字
LeetCode | Roman to Integer(羅馬數字轉換成整數)
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 題目解析: 這道題還是跟上題一樣,要對羅馬數字有一
羅馬數字轉整數 · Roman to Integer
逆序 整數 算法 數據結構 bug num div time ger [抄題]: [暴力解法]: 時間分析: 空間分析: [思維問題]: 沒有想到羅馬字是逆序的情況 沒有想到要先用toCharArray()方法把字符串拆成一個字符串數組 [一句話思路]: [輸入量]
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)解答
13. 羅馬數字轉整數 羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5
【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
[LeetCode]羅馬數字轉整數(Roman to Integer)
題目描述 羅馬數字包含以下七種字元:I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C
LeetCode——羅馬數字轉整數(Roman to Integer)
羅馬數字包含以下七種字元: I, V, X, L,C,D 和 M。 字元 數值 I 1 V 5 X 10 L 50 C 100 D
leetcode 13 Roman to Integer (羅馬數轉換成整數)
題目要求 將羅馬數字轉換為整數,其中羅馬數字有7種“Ⅰ,V, X, L, C, D, M”,含義屬下表所示: Ⅱ: 表示兩個Ⅰ相加(1+1=2) XⅡ: 表示X 和Ⅱ相加(10+2 = 12) 需要注意的是!!! 羅馬數字在書寫時遵循著從左到右是數值遞增(就是右邊的數會比左邊的大,