package com.shengda.Demo0Likou;
import java.util.HashMap;
public class Demo13 {
public static void main(String[] args) {
Solution solution = new Solution();
String s = "IV";
int num = solution.romanToInt(s);
System.out.println(num);
}
}
class Solution{
public int romanToInt(String s) {
// 将数值表存入到HashMap里边,然后进行对比
/*HashMap<String,Integer> map = new HashMap<>();
int num = 0;
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);
for (int i = 0; i < s.length()-1; i++) {
String str1 = String.valueOf(s.charAt(i));
String str2 = String.valueOf(s.charAt(i+1));
if (map.get(str1)<map.get(str2)){
num = num -map.get(str1);
} else {
num = num+map.get(str1);
}
}
String str = String.valueOf(s.charAt(s.length()-1));
return num+map.get(str);*/
// 通过swich进行获取每个字母对应的值
int num = SetNum(s.charAt(s.length()-1));
for (int i = 0; i < s.length()-1; i++) {
int data1 = SetNum(s.charAt(i));
int data2 = SetNum(s.charAt(i+1));
if (data1<data2) {
num = num-data1;
} else num = num+data1;
}
return num;
}
private int SetNum(char charAt) {
switch (charAt) {
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;
}
return 0;
}
}
JAVA罗马数字转整数——力扣练习题
最新推荐文章于 2024-09-22 22:15:03 发布