Roman to Integer 羅馬數字轉阿拉伯數字@LeetCode
思路:
從前往後遍歷羅馬數字,如果某個數比前一個數小,則把該數加入到結果中;
反之,則在結果中兩次減去前一個數並加上當前這個數;
package Level2; /** * Roman to Integer * * Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. */ public class S13 { public static void main(String[] args) { } //羅馬數字轉阿拉伯數字: // 從前往後遍歷羅馬數字,如果某個數比前一個數小,則把該數加入到結果中; // 反之,則在結果中兩次減去前一個數並加上當前這個數; // I、V、X、 L、 C、 D、 M // 1.5、10、50、100、500、1000 public int romanToInt(String s) { int graph[] = new int[400]; graph['I'] = 1; graph['V']=5; graph['X']=10; graph['L']=50; graph['C']=100; graph['D']=500; graph['M']=1000; char[] num = s.toCharArray(); // 遍歷這個數,用sum來總計和 int sum = graph[num[0]]; for(int i=0; i<num.length-1; i++){ // 如果,i比i+1大的話,直接相加 if(graph[num[i]] >= graph[num[i+1]]){ sum += graph[num[i+1]]; } // 如果i比i+1小的話,則將總和sum減去i這個地方數的兩倍,同時加上i+1 // 就相當於後邊的數比左邊的數大,則用右邊的數減左邊的數 else{ sum = sum + graph[num[i+1]] - 2*graph[num[i]]; } } return sum; } }
public class Solution { public int romanToInt(String s) { int[] map = new int[256]; map['I'] = 1; map['V'] = 5; map['X'] = 10; map['L'] = 50; map['C'] = 100; map['D'] = 500; map['M'] = 1000; char[] cc = s.toCharArray(); int sum = map[cc[0]]; for(int i=0; i<cc.length-1; i++){ if(map[cc[i]] >= map[cc[i+1]]){ sum += map[cc[i+1]]; }else{ sum = sum + map[cc[i+1]] - 2*map[cc[i]]; } } return sum; } }
相關推薦
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
leetcode Roman to Integer羅馬數字與阿拉伯數字互轉
羅馬數字規則: 1, 羅馬數字共有7個,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)。 羅馬數字中沒有“0”。 2, 重複次數:一個羅馬數字最多重複3次。
LeetCode 13.Roman to Integer (羅馬數字轉整數)
題目描述: 羅馬數字包含以下七種字元:I, V, X, L,C,D ,M。 符 數值 I 1 V 5 X 10 L 50 C 100
[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: 輸入
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(羅馬數字轉阿拉伯數字)
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 方法:理解羅馬數字。 public class S
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. 羅馬數轉化成數字問題,我們需要對於羅馬數字很
[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
羅馬數字轉阿拉伯數字
public class Main { public static void main(String[] args) { System.out.print
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)-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 OJ 之 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 and integer to roman in c++]
【本文連結】 【題目】 給出一個羅馬數字,轉換為阿拉伯數字。本題只考慮3999以內的數。 羅馬數字有如下符號: Ⅰ(1)Ⅴ(5)Ⅹ(10)L(50)C(100)D(500)M(1000) 計數規則: (1).若干相同數字連寫表示的數是這些羅馬數字的和,如III=3; (2).小數字在大數字