13. Roman to Integer —— Java
来源:互联网 发布:淘宝网服装男装 编辑:程序博客网 时间:2024/05/16 06:37
Example:
Given "DCXXI" return 621Given "MCMXCVI" return 1996
- 重复数次:一个罗马数字重复几次,就表示这个数的几倍。
- 右加左减:
- 在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。
- 在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。
- 左减的数字有限制,仅限于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代替IV。
class Solution { public int romanToInt(String s) { char[] array = s.toCharArray(); int total = 0; int temp = 0; for(int i=0;i<array.length;i++){ if(i != array.length - 1){ if(num(array[i]) < num(array[i+1])) temp = -num(array[i]); else temp = num(array[i]); } else temp = num(array[i]); total += temp; } return total; } public int num(char c){ switch(c){ case 'M': return 1000; case 'D': return 500; case 'C': return 100; case 'L': return 50; case 'X': return 10; case 'V': return 5; case 'I': return 1; default: return 0; } }}
阅读全文
0 0
- 13. Roman to Integer —— Java
- 13. Roman to Integer(Java)
- Algorithms—13.Roman to Integer
- leetcode— Integer to Roman
- Roman to Integer (Java)
- Java-Roman to Integer
- Java-Integer to Roman
- Integer to Roman (Java)
- (Java)LeetCode-13. Roman to Integer
- leetcode-java-13. Roman to Integer
- [LeetCode-Java]13. Roman to Integer
- [LeetCode] 13. Roman to Integer java
- [leetcode]13. Roman to Integer(Java)
- LeetCode 12 — Integer to Roman(C++ Java Python)
- 13. Roman to Integer
- 13.Roman to Integer
- 13. Roman to Integer
- 13.Roman to Integer
- WOJ1018-King Kong
- 如何巧用WiFi探针技术深度挖掘线下大数据
- 根据身份证号码计算星座
- jquery刷新页面的实现代码(局部及全页面刷新)
- 求文件长度
- 13. Roman to Integer —— Java
- Error:(17, 39) String types not allowed (at 'layout_heightPercent' with valu
- Terms of Service
- struts2和springmvc的区别
- 【js】鼠标点击切换样式
- ps -ef和ps aux的区别
- Gson源码分析
- Uchar * 转换为 QString
- 深受喜爱的变幻小气泡(画布完成的)