Chinaunix首页 | 论坛 | 博客
  • 博客访问: 262661
  • 博文数量: 170
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1709
  • 用 户 组: 普通用户
  • 注册时间: 2014-05-06 18:01
文章分类

全部博文(170)

文章存档

2016年(11)

2015年(130)

2014年(29)

分类: Java

2015-03-22 17:05:19



//Given a roman numeral, convert it to an integer.
//
//Input is guaranteed to be within the range from 1 to 3999.
//最后一个用来赋初值,前面的如果大于或等于就加上去,小于就减去这个
import java.util.HashMap;
import java.util.Map;


public class RomanInteger {
public int romanToInt(String s) {
 Map map=new HashMap<>();
  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 result=0;
  for (int i = s.length()-1; i>=0; i--) {
if(i == s.length()-1){
result=map.get(s.substring(i, i+1));
continue;
}
if(map.get(s.substring(i, i+1))>=map.get(s.substring(i+1, i+2)))
result+=map.get(s.substring(i, i+1));
else 
result-=map.get(s.substring(i, i+1));

  }
  return result;
}
    
}

阅读(229) | 评论(0) | 转发(0) |
0

上一篇:ReverseWordsinaString

下一篇:SetMatrixZeroes

给主人留下些什么吧!~~