Roman to Integer
2015-08-12 11:25
295 查看
如果当前字符小于前个字符对应的数字加上当前字符对应的数字减去前一个数字的两倍 否则直接加上当前数字就好
public class Solutiion { public static int romanToInt(String s) { char[] symbol = { 'I', 'V', 'X', 'L', 'C', 'D', 'M' }; int[] val = { 1, 5, 10, 50, 100, 500, 1000 }; Map<Character, Integer> map = new HashMap<Character, Integer>(); int i, k = 0; int left, result = 0; for (i = 0; i < symbol.length; i++) { map.put(symbol[i], val[i]); } left = map.get(s.charAt(0)); result = result + left; if (s.length() == 1) { return map.get(s.charAt(0)); } for (i = 1; i < s.length(); i++) { if (map.get(s.charAt(i)) <= map.get(s.charAt(i - 1))) { result = result + map.get(s.charAt(i)); } else { result = result + map.get(s.charAt(i)) - 2 * map.get(s.charAt(i - 1)); } } return result; } }
相关文章推荐
- iOS规范化时间格式,object-C计算指定时间与当前的时间差
- spring4+hibernate4配置过程中遇到的问题
- 自动构建工具Grunt
- oracle中查看用户权限
- http请求部分常见的状态码
- Magento SOAP API V2 开放接口修改订单状态
- 破解时常用的汇编指令
- JSON的三种解析方式
- 教你如何绘制圆形头像
- android关于GPS hal层的分析
- easyui 窗口的onBeforeClose 使用
- 类的静态成员及静态成员函数
- 为什么在header 和 session 之前不能有输出
- javafx virtual keyboard
- 真正的成长
- 我的iOS开发之Objective-C第2天之面向对象特性之封装
- Bit Manipulation - Bitwise AND of Numbers Range
- 使用jquery操作session
- Android项目中使用Gradle
- 畅通工程再续