[LeetCode]-011-Roman_to_Integer
2024-08-30 23:30:25
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
题目大意:把罗马数字转换成的整数
遍历每个字符,前一个字符比后一个字符小,相减
public class Solution{
public int romanToInt(String s) {
s = s.trim();
if (null == s || "".equals(s))
return 0;
HashMap<Character,Integer> map = new HashMap<Character,Integer>();
map.put('I',1);
map.put('V',5);
map.put('X',10);
map.put('L',50);
map.put('C',100);
map.put('D',500);
map.put('M',1000);
int cur = s.length()-1;
int sum = map.get(s.charAt(cur));
int tmp1,tmp2;
cur--;
while(cur>=0){
tmp1 = map.get(s.charAt(cur+1));
tmp2 = map.get(s.charAt(cur));
if(tmp2<tmp1)
sum = sum - tmp2;
else
sum = sum + tmp2;
cur--;
}
return sum;
} public static void main(String[] args){
String param = "CMXLVI";
if(args.length==1){
param = args[0];
}
Solution solution = new Solution();
int res = solution.romanToInt(param);
System.out.println(res);
}
}
最新文章
- LeetCode之Unique Binry Search Trees
- The URL ";filename"; is invalid. It may refer to a nonexistent file or folder, or refer to a valid file or folder that is not in the current Web
- python简介-copy
- RSA PKCS1padding 填充模式
- PeopleEditor的取值及赋值
- 关于ABP——领域服务的思考
- [心得]传统IT转互联网面试经验分享
- Linux CentOS7.0 (02)修改主机名和ip地址
- class中限定绑定属性__slots__方法
- [Swift-2019力扣杯春季初赛]1. 易混淆数
- springboot-01 helloworld
- SQL Server 2008 分区函数和分区表详解
- materials
- 怎样用CMD命令强行删除文件?
- JZOJ.5328【NOIP2017模拟8.22】世界线
- LevelDb日知录之五:MemTable详解
- JavaScript里的循环方法之forEach,for-in,for-of
- Win10怎么以管理员身份运行CMD命令提示符
- SSM整合开发流程
- Python 类的设计原则