如果某一个字母代表的数字大于上一个字母代表的数字小,那么加上这个数字,否则,减去两倍的前一个数字,然后加上这一位数字。

 public class Solution {
private static char[][] chars = {{'I', 'V'}, {'X', 'L'}, {'C', 'D'}, {'M', 'O'}};
private static HashMap<Character, Integer> map = null;
private static void init() {
map = new HashMap<Character, Integer>();
for (int i = 0; i < 4; i++) {
map.put(chars[i][0], (int) Math.pow(10, i));
map.put(chars[i][1], 5 * (int) Math.pow(10, i));
}
}
public static int romanToInt(String s) {
if (map == null) {
init();
}
int length = s.length();
int result = 0;
boolean flag = true;
int prev = map.get(s.charAt(0));
for (int i = 1; i < length; i++) {
int x = map.get(s.charAt(i));
if (prev >= x) {
result += prev;
} else {
result -= prev;
}
prev = x;
}
result += prev;
return result;
}
}

最新文章

  1. [Unity3D]自制UnityForAndroid二维码扫描插件
  2. CSS控制表格(table)样式
  3. MYSQL 内存报错 Use &#39;mysqld --thread_stack=#&#39; to specify a bigger stack.
  4. H5、CSS3属性的支持性以及flex
  5. kettle etl
  6. SQLite主键自增需要设置为integer PRIMARY KEY
  7. iOS-编译简单静态库初探
  8. 用UltralSO安装CentOS 和 Ubuntu
  9. 最大期望算法 Expectation Maximization概念
  10. Java中“||”与“|”的区别
  11. Android开发之自定义圆角矩形图片ImageView的实现 - Jamy Cai
  12. Session变量不能转移到下页.解决: session.use_trans_sid = 1
  13. sudoku--SE第二次作业
  14. 在ASP.NET MVC中使用Web API和EntityFramework构建应用程序
  15. 死磕 java集合之HashSet源码分析
  16. BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
  17. [GXOI/GZOI2019]宝牌一大堆
  18. 一口一口吃掉Hexo(三)
  19. 让Redis在你的系统中发挥更大作用
  20. 简单的Http请求数据保存到Hdfs

热门文章

  1. iOS - 适配器模式场景总结
  2. WebService如何调试及测试工具
  3. Java排序算法——基数排序
  4. thinkphp上传
  5. SQL Server遍历表的几种方法
  6. passive 的事件监听器
  7. UIScrollView和delegate的通信
  8. UIScrollView的其他属性
  9. bowtie1和bowtie2的比较
  10. 日期控件jsdate用法注意事项