【LeetCode】013.Roman Integer
来源:互联网 发布:单片机协议栈开发 编辑:程序博客网 时间:2024/06/10 08:27
题目如下:
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
解答:仔细观察罗马数字,只有出现IV(4),IX(9),XL(40),XC(90)等时,才需要减去左边字母代表的值,其余情况则直接加即可。
所以,从左到右遍历即可,用一个变量记录上一个字符串,进行减操作;
代码如下:
public class Solution { public int romanToInt(String s) {char[] ac = s.toCharArray();int result = 0;char lastChar = 0;for(int i=0;i<ac.length;i++){switch(ac[i]){case 'M':if(lastChar == 'C'){ //CMresult -= 100;result += 900;lastChar = ac[i];} else{result += 1000;lastChar = ac[i];} break;case 'D':if(lastChar == 'C'){ // CDresult -= 100;result += 400;lastChar = 0;} else {result += 500;lastChar = ac[i];}break;case 'C':if(lastChar == 'X'){ // XCresult -= 10;result += 90;lastChar = 0;} else {result += 100;lastChar = ac[i];}break;case 'L':if(lastChar == 'X'){ // XLresult -= 10;result += 40;lastChar = 0;} else {result += 50;lastChar = 0;}break;case 'X' : if(lastChar == 'I'){ // IXresult -= 1;result += 9;lastChar = 0;} else {result += 10;lastChar = ac[i];}break;case 'V' :if(lastChar == 'I'){ // IVresult -= 1;result += 4;lastChar = 0;} else {result += 5;lastChar = ac[i];}break;case 'I' :result += 1;lastChar = ac[i];break;default :return 0;}}return result;}}
0 0
- 【LeetCode】013.Roman Integer
- LeetCode 013. Roman to Integer
- 【LeetCode】 013. Roman to Integer
- LeetCode 013. Roman to Integer
- [LeetCode 解题报告]013. Roman to Integer
- 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
- LeetCode : Roman to Integer
- [Leetcode] Roman to Integer
- 2015/03/26 选择排序的实现+css要点+javascript的简介+什么是接口
- jQuery - toggle 每次点击出现一种事件,并且反复出现 $ 点击显示再次点击隐藏
- HDU 4734 F(x) (数位dp+ 记忆化)
- 最可怕的产品经理
- Android配置单元测试
- 【LeetCode】013.Roman Integer
- 公开课机器学习笔记(7)Softmax回归模型
- mysql explain解析
- 我的新征途
- 《Effective C++》:条款52:写了placement new也要写placement delete
- Qt中mouseMoveEvent和mousePressEvent实现鼠标滑动换label颜色
- 关于如何显示tomcat未显示的启动异常
- Linux格式化并重新加载磁盘
- 关于inputStream.available()方法获取下载文件的总大小