13. Roman to Integer
来源:互联网 发布:云上贵州大数据 编辑:程序博客网 时间:2024/06/05 08:57
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
Subscribe to see which companies asked this question.
Solution:
Tips:
implement it using recursion, just for practice it.
Java Code:
public class Solution { public int romanToInt(String s) { // I/1 V/5 X/10 L/50 C/100 D/500 M/1000 Map<Character, Integer> table = new HashMap<>(); table.put('I', 1); table.put('V', 5); table.put('X', 10); table.put('L', 50); table.put('C', 100); table.put('D', 500); table.put('M', 1000); return romanToInt(s, 0, table); } public int romanToInt(String s, int begin, Map<Character, Integer> table) { // I/1 V/5 X/10 L/50 C/100 D/500 M/1000 // left only can keep one, rigth can keep two for V L D if (begin + 1 == s.length()) { return table.get(s.charAt(begin)); } if (begin == s.length()) { return 0; } int left = table.get(s.charAt(begin)); int right = table.get(s.charAt(begin + 1)); return left >= right ? left + romanToInt(s, begin + 1, table) : right - left + romanToInt(s, begin + 2, table); }}
0 0
- 13. Roman to Integer
- 13.Roman to Integer
- 13. Roman to Integer
- 13.Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 13. Roman to Integer
- 图像拉普拉斯金字塔(laplacian pyramid)并从金字塔重建原图 matlab程序实现
- spring-aop详细用法
- 支持UEFI的主板在win10下安装ubuntu双系统
- Python入门练习0009:人民币金额打印
- 什么是serialVersionUID,serialVersionUID的作用
- 13. Roman to Integer
- Android ShareSDKQQ 第三方登录so easy?
- html表单的几种提交方式总结
- 2017-4-8practice
- 2017年网易游戏数据挖掘/机器学习实习生笔试回忆
- 安卓adb调用模拟屏幕点击
- matlab学习笔记(基础)
- 结对编程
- 写博客的意义