[leetcode] 13. Roman to Integer
2024-10-12 01:26:16
如果某一个字母代表的数字大于上一个字母代表的数字小,那么加上这个数字,否则,减去两倍的前一个数字,然后加上这一位数字。
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;
}
}
最新文章
- [Unity3D]自制UnityForAndroid二维码扫描插件
- CSS控制表格(table)样式
- MYSQL 内存报错 Use &#39;mysqld --thread_stack=#&#39; to specify a bigger stack.
- H5、CSS3属性的支持性以及flex
- kettle etl
- SQLite主键自增需要设置为integer PRIMARY KEY
- iOS-编译简单静态库初探
- 用UltralSO安装CentOS 和 Ubuntu
- 最大期望算法 Expectation Maximization概念
- Java中“||”与“|”的区别
- Android开发之自定义圆角矩形图片ImageView的实现 - Jamy Cai
- Session变量不能转移到下页.解决: session.use_trans_sid = 1
- sudoku--SE第二次作业
- 在ASP.NET MVC中使用Web API和EntityFramework构建应用程序
- 死磕 java集合之HashSet源码分析
- BZOJ.4842.[NEERC2016]Delight for a Cat(费用流)
- [GXOI/GZOI2019]宝牌一大堆
- 一口一口吃掉Hexo(三)
- 让Redis在你的系统中发挥更大作用
- 简单的Http请求数据保存到Hdfs