【leetcode】【13】Roman to Integer
2016-02-27 11:21
579 查看
一、问题描述
Given a roman numeral, convert it to an integer.Input is guaranteed to be within the range from 1 to 3999.
二、问题分析
这道题和上一道一样,需要注意罗马数字的一些规则。三、Java AC代码
public int romanToInt(String s) {int res = 0;
int[] mid = new int[s.length()];
for(int i=0;i<s.length();i++){
switch (s.charAt(i)) {
case 'I':mid[i] = 1;break;
case 'V':mid[i] = 5;break;
case 'X':mid[i] = 10;break;
case 'L':mid[i] = 50;break;
case 'C':mid[i] = 100;break;
case 'D':mid[i] = 500;break;
case 'M':mid[i] = 1000;break;
}
}
res = mid[s.length()-1];
for(int i= s.length()-2;i>=0;i-- ){
if(mid[i]>=mid[i+1]){
res+=mid[i];
}else {
if(mid[i+1]==5){
while(mid[i]==1){
res--;
i--;
if(i==-1) break;
if(mid[i]!=1) {i++; break;}
}
}else {
res-=mid[i];
}
}
}
return res;
}
相关文章推荐
- java对世界各个时区(TimeZone)的通用转换处理方法(转载)
- java-注解annotation
- java-模拟tomcat服务器
- java-用HttpURLConnection发送Http请求.
- java-WEB中的监听器Lisener
- Android IPC进程间通讯机制
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- 介绍一款信息管理系统的开源框架---jeecg
- 聚类算法之kmeans算法java版本
- java实现 PageRank算法
- PropertyChangeListener简单理解
- c++11 + SDL2 + ffmpeg +OpenAL + java = Android播放器
- 插入排序
- 冒泡排序
- 堆排序
- 快速排序
- 二叉查找树