【LeetCode-面试算法经典-Java实现】【013-Roman to Integer (罗马数字转成整数)】
2015-07-20 07:20
1081 查看
【013-Roman to Integer (罗马数字转成整数)】
【LeetCode-面试算法经典-Java实现】【所有题目目录索引】
原题
Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.
题目大意
给定一个罗马数字,将其转换成对应的整数。输入的数字在1-3999之间。
解题思路
根据罗马数字与整数数字对应关系进行加法操作,如果前一个数字比后一个大就相减,否则进行相加。代码实现
public class Solution { public int romanToInt(String s) { int result = 0; int prev = 0; // 记录前一个数字的值 for (int i = s.length() - 1; i > -1; i--) { switch (s.charAt(i)) { case 'I': // 1 if (1 < prev) { result -= 1; } else { result += 1; } prev = 1; break; case 'V': // 5 if (5 < prev) { result -= 5; } else { result += 5; } prev = 5; break; case 'X': // 10 if (10 < prev) { result -= 10; } else { result += 10; } prev = 10; break; case 'L': // 50 if (50 < prev) { result -= 50; } else { result += 50; } prev = 50; break; case 'C': // 100 if (100 < prev) { result -= 100; } else { result += 100; } prev = 100; break; case 'D': // 500 if (500 < prev) { result -= 500; } else { result += 500; } prev = 500; break; case 'M': // 1000 result += 1000; prev = 1000; break; } } return result; }
评测结果
点击图片,鼠标不释放,拖动一段位置,释放后在新的窗口中查看完整图片。特别说明
欢迎转载,转载请注明出处【/article/1343449.html】
相关文章推荐
- 【LeetCode-面试算法经典-Java实现】【012-Integer to Roman(数字转罗马字符)】
- 程序员的能力拓展模型
- 传智播客DotNet面试题
- 黑马程序员——Java学习总结 IO部分
- 一个程序员的5年成长之路从1.5k到18k
- 程序员都应该知道的福利
- 程序员的开发项目总是半途而废
- 程序员必知生活经验
- 《C#求职宝典》读书笔记
- 项目思维
- Android 面试题
- 黑马程序员————Java基础日常笔记---反射与正则表达式
- leetcode难度及面试频率
- Java面试题集锦
- 我的六年程序员职业生涯总结(一)
- 读书笔记一 Java程序员的基本修养(数组及其内存管理)
- Java程序员,你为什么要关注Scala
- 黑马程序员-Foundation框架之NSDirctionary类以及NSMutableDirctionary类
- 黑马程序员-Foundation框架之NSArray类
- 黑马程序员-Foundation框架之NSString