https://leetcode.cn/problems/roman-to-integer/
class Solution {
public int romanToInt(String s) {
int sum = 0;
for (int i = 0; i < s.length(); i++) {
// 做判断
// "III"
// "II"
if (i + 1 >= s.length()) {
sum += changeNum(s.charAt(i));
}
else {
// 是否是可减的
int num1 = getSum(s.charAt(i), s.charAt(i + 1));
if (num1 == 0) {
// 不可减
sum += changeNum(s.charAt(i));
}
else {
sum += num1;
i++;
}
}
}
return sum;
}
public static int getSum(char char1, char char2) {
int num = 0;
// char char1 = str.charAt(0);
// char char2 = str.charAt(1);
if (char1 == 'I' && (char2 == 'V' || char2 == 'X')) {
num = changeNum(char2) - changeNum(char1);
}
else if (char1 == 'X' && (char2 == 'L' || char2 == 'C')) {
num = changeNum(char2) - changeNum(char1);
}
else if (char1 == 'C' && (char2 == 'D' || char2 == 'M')) {
num = changeNum(char2) - changeNum(char1);
}
return num;
}
/**
* 获取数字
* [一句话功能简述]
*
* @param str
* @return
*/
public static int changeNum(char str) {
int num = 0;
switch (str) {
case 'I':
num = 1;
break;
case 'V':
num = 5;
break;
case 'X':
num = 10;
break;
case 'L':
num = 50;
break;
case 'C':
num = 100;
break;
case 'D':
num = 500;
break;
case 'M':
num = 1000;
default:
break;
}
return num;
}
}