[LeetCode] Roman to Integer and Integer to Roman
来源:互联网 发布:数据库安全研究论文 编辑:程序博客网 时间:2024/04/28 10:32
羅馬數字共有7個,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)。按照下述的規則可以表示任意正整數。需要注意的是罗马数字中没有“0”,與進位制無關。一般認為羅馬數字只用來記數,而不作演算。
- 重複數次:一個羅馬數字重複幾次,就表示這個數的幾倍。
- 右加左減:
- 在較大的羅馬數字的右邊記上較小的羅馬數字,表示大數字加小數字。
- 在較大的羅馬數字的左邊記上較小的羅馬數字,表示大數字减小數字。
- 左减的数字有限制,仅限于I、X、C。比如45不可以写成VL,只能是XLV
- 但是,左減時不可跨越一個位數。比如,99不可以用IC()表示,而是用XCIX()表示。(等同於阿拉伯數字每位數字分別表示。)
- 左減數字必須為一位,比如8寫成VIII,而非IIX。
- 右加數字不可連續超過三位,比如14寫成XIV,而非XIIII。(見下方“數碼限制”一項。)
- 加線乘千:
- 在羅馬數字的上方加上一條橫線或者加上下標的Ⅿ,表示將這個數乘以1000,即是原數的1000倍。
- 同理,如果上方有兩條橫線,即是原數的1000000()倍。
- 數碼限制:
- 同一數碼最多只能出現三次,如40不可表示為XXXX,而要表示為XL。
- 例外:由於IV是古羅馬神話主神朱庇特(即IVPITER,古羅馬字母裡沒有J和U)的首字,因此有時用IIII代替Ⅳ。
1. Roman to Integer
class Solution {public: int romanToInt(string s) { // Note: The Solution object is instantiated only once and is reused by each test case. int result=0; map<char,int> roman; roman['I']=1; roman['V']=5; roman['X']=10; roman['L']=50; roman['C']=100; roman['D']=500; roman['M']=1000; for(int i=s.length()-1;i>=0;i--) { if(i==s.length()-1) { result=roman[s[i]]; continue; } if(roman[s[i]] >= roman[s[i+1]]) result+=roman[s[i]]; else result-=roman[s[i]]; } return result; }};
2. Integer to Roman
- [LeetCode] Roman to Integer and Integer to Roman
- [LeetCode]Integer to Roman AND ROman to Integer
- LeetCode]Integer to Roman AND ROman to Integer
- [LeetCode/LinkedIn] Integer to Roman and roman number to Integer
- Integer to Roman and Roman to Integer
- "Roman to Integer" and "Integer to Roman"
- Roman to Integer and Integer to Roman
- LeetCode Roman to Integer && Integer to Roman
- 【leetcode】Roman to Integer | Integer to Roman
- Leetcode - "Roman to Integer" & "Integer to Roman"
- LeetCode:Roman to Integer,Integer to Roman
- LeetCode Integer to Roman & Roman to Integer
- leetcode - roman to integer & integer to roman
- LeetCode:Roman to Integer
- LeetCode: Integer to Roman
- LeetCode: Roman to Integer
- LeetCode Integer to Roman
- LeetCode: Integer to Roman
- 个人总结了下自己在XP系统下键盘组合代码,顺便分享下,其实很实用,可是你用到了麽?
- java注解
- NOIP实用算法 3.搜索
- paip.java 架构师之路以及java高级技术
- 关于微信模拟登陆的问题
- [LeetCode] Roman to Integer and Integer to Roman
- DBUtils之PooledDB数据库连接池
- 面试之图论[Graph],算法摘要总结
- Android引入第三方jar包报错java.lang.NoClassDefFoundError解决办法
- LeetCode题解:Restore IP Addresses
- 删数问题
- Centos安装Memcache
- [LeetCode] 2Sum, 3Sum, 4Sum, 3SUm closet
- CString和string的互相转换