leetcode 罗马数字转整数
生活随笔
收集整理的這篇文章主要介紹了
leetcode 罗马数字转整数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
羅馬數字包含以下七種字符:I,V,X,L,C,D 和M。
| I | 1 |
| V | 5 |
| X | 10 |
| L | 50 |
| C | 100 |
| D | 500 |
| M | 1000 |
例如, 羅馬數字 2 寫做II ,即為兩個并列的 1。12 寫做XII ,即為 X +II 。 27 寫做 XXVII, 即為XX +V +II 。
通常情況下,羅馬數字中小的數字在大的數字的右邊。但也存在特例,例如 4 不寫做IIII,而是IV。數字 1 在數字 5 的左邊,所表示的數等于大數 5 減小數 1 得到的數值 4 。同樣地,數字 9 表示為IX。這個特殊的規則只適用于以下六種情況:
- `I` 可以放在 `V` (5) 和`X` (10) 的左邊,來表示 4 和 9。 - `X` 可以放在` L` (50) 和` C` (100) 的左邊,來表示 40 和 90。 - `C` 可以放在 `D `(500) 和 `M` (1000) 的左邊,來表示 400 和 900。給定一個羅馬數字,將其轉換成整數。輸入確保在 1 到 3999 的范圍內。
示例 1:
輸入: "III"
輸出: 3
示例 2:
輸入: "IV"
輸出: 4
示例 3:
輸入: "IX"
輸出: 9
示例 4:
輸入: "LVIII"
輸出: 58
解釋: C = 100, L = 50, XXX = 30, III = 3.
示例 5:
輸入: "MCMXCIV"
輸出: 1994
解釋: M = 1000, CM = 900, XC = 90, IV = 4.
實在是想不出有什么辦法能判斷結果,看了別人的沒想到這么簡單
/*** @param {string} s* @return {number}*/ var romanToInt = function (s) {let charNum = {I: 1,V: 5,X: 10,L: 50,C: 100,D: 500,M: 1000,};let sum = 0;let len = s.length;for (let i = 0; i < len; i++) {if(charNum[s[i]]<charNum[s[i+1]]){sum-=charNum[s[i]];}else {sum+=charNum[s[i]];}}return sum; };轉載于:https://www.cnblogs.com/sbzy/p/9398186.html
總結
以上是生活随笔為你收集整理的leetcode 罗马数字转整数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: iOS-----------关于组件化
- 下一篇: Illustrator、Indesign