个位数举例
I,1 】II,2】 III,3】 IV,4 】V,5 】VI,6】 VII,7】 VIII,8 】IX,9 
·十位数举例
X,10】 XI,11 】XII,12】 XIII,13】 XIV,14】 XV,15 】XVI,16 】XVII,17 】XVIII,18】 XIX,19】 XX,20】 XXI,21 】XXII,22 】XXIX,29】 XXX,30】 XXXIV,34】 XXXV,35 】XXXIX,39】 XL,40】 L,50 】LI,51】 LV,55】 LX,60】 LXV,65】 LXXX,80】 XC,90 】XCIII,93】 XCV,95 】XCVIII,98】 XCIX,99 】
·百位数举例
C,100】 CC,200 】CCC,300 】CD,400】 D,500 】DC,600 】DCC,700】 DCCC,800 】CM,900】 CMXCIX,999】 
·千位数举例 
M,1000】 MC,1100 】MCD,1400 】MD,1500 】MDC,1600 】MDCLXVI,1666】 MDCCCLXXXVIII,1888 】MDCCCXCIX,1899 】MCM,1900 】MCMLXXVI,1976】 MCMLXXXIV,1984】 MCMXC,1990 】MM,2000 】MMMCMXCIX,3999】
·千位数以上举例
-----
CLXXX DCL,183650】
====== -----

CXXXIV CMXLV DLXXXIV,134945584】

Java代码实现罗马数字转换为整数:关键是要发现罗马数字的规律
import java.util.HashMap;
import java.util.Map;
public class romanToInt {
public static int solution(String s) {
if(s == null || s.length() == 0){
       return 0;
   }
   int pre = charToInt(s.charAt(0));
   int sum = pre;
   for(int i = 1; i < s.length(); i++){
       int cur = charToInt(s.charAt(i));
       if(pre < cur){
           sum -= 2*pre;
       }
       sum += cur;
       pre = cur;
   }
   return sum;
}
public static int charToInt(char str){
switch(str){
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;
}
 
public static int solution2(String s){
   int ptr = s.length() - 1;
   int curr;
   int prev = 0;
   int result = 0;


   while(ptr >= 0) {
       curr = charToInt(s.charAt(ptr));
       result = curr >= prev ? (result + curr) : (result - curr);
       prev = curr;
       ptr--;
   }
return result;
 
}

public static void main(String[] args){
String s="XX";
System.out.println(solution2(s));
}


}


Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐