1 Star 0 Fork 0

临窗旋墨 / basics

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
J0013_E_RomanToInt.java 1.72 KB
一键复制 编辑 原始数据 按行查看 历史
临窗旋墨 提交于 2020-11-10 09:27 . leetcode 罗马数字转整数
package pers.vic.basics.leetcode;
import java.util.Random;
/**
* @author Vic.xu
* @description: 13. 罗马数字转整数
* @date: 2020/11/6 17:08
*/
public class J0013_E_RomanToInt {
/**
* 从末尾(最右边)开始累加 ,遇到左边的小于右边的 则总数减去当前值
*/
public static int romanToInt(String s) {
int sum = 0;
char[] cs = s.toCharArray();
int len = cs.length;
int right = getValue(cs[len - 1]);
sum = right;
for (int i = len - 2; i >= 0; i--) {
int left = getValue(cs[i]);
if (left < right) {
sum = sum - left;
}else {
sum += left;
}
right = left;
}
return sum;
}
public static int getValue(char c) {
switch (c) {
case 'I':
return 1;
case 'V':
return 5;
case 'X':
return 10;
case 'L':
return 50;
case 'C':
return 100;
case 'D':
return 500;
case 'M':
return 1000;
default:
return 0;
}
}
/*
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
*/
public static void main(String[] args) {
System.out.println(romanToInt("III"));
System.out.println(romanToInt("IV"));
// 9
System.out.println(romanToInt("IX"));
// 58
System.out.println(romanToInt("LVIII"));
//1994
System.out.println(romanToInt("MCMXCIV"));
}
}
Java
1
https://gitee.com/xuqiudong/basics.git
git@gitee.com:xuqiudong/basics.git
xuqiudong
basics
basics
master

搜索帮助