13.Roman to Integer (罗马数字转成整数)
2015-08-03 14:32
447 查看
public class Solution {
public 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>();
for (int i = 0; i < symbol.length; i++)
map.put(symbol[i], val[i]);
int len = s.length();
int res = 0;
res += map.get(s.charAt(0));
for (int i = 1; i < len; i++) {
int cur = map.get(s.charAt(i));
int pre = map.get(s.charAt(i - 1));
if (cur <= pre) {
res += cur;
} else {
res = res + cur - 2 * pre;
}
}
return res;
}
}
public 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>();
for (int i = 0; i < symbol.length; i++)
map.put(symbol[i], val[i]);
int len = s.length();
int res = 0;
res += map.get(s.charAt(0));
for (int i = 1; i < len; i++) {
int cur = map.get(s.charAt(i));
int pre = map.get(s.charAt(i - 1));
if (cur <= pre) {
res += cur;
} else {
res = res + cur - 2 * pre;
}
}
return res;
}
}
相关文章推荐
- Cent Savings (DP)
- 怎么将Word转换成PDF的方法分享
- poj 1860 Currency Exchange (最短路,Bellman-Ford算法)
- DataGridView 某一列单元格内容居中显示
- Linux 任务后台运行
- codeforces 545C C. Woodcutters(dp+二分)
- 15-07-22 数据库--存储过程、触发器
- JSP快速入门教程——全十讲
- DOM事件处理
- C#读写.ini文件
- 使用Java反射(Reflect)、自定义注解(Customer Annotation)生成简单SQL语句
- Quora Infrastructure: How does Quora solve problems in their deployment process?
- C#读写.ini文件
- Windows下的Objective-C集成开发环境搭建(IDE)
- Android Studio常用小技巧
- Windows 7 安装之后要做的事
- 自定义一个在底部显示的dialog
- 设计模式 模板方法模式
- 发布设置setting.xml
- 【Windows 10 IoT - 3】Windows 10 RTM安装及新特性(树莓派 Pi2)