var romanToInt = function(s) {
let sum = 0;//结果整数
let ex_obj = { //例外的罗马数字组合,对应的阿拉伯数字
"IV": 4,
"IX": 9,
"XL": 40,
"XC": 90,
"CD": 400,
"CM": 900,
}
let val_obj = {//罗马数字单字符,对应的阿拉伯数字
"I": 1,
"V": 5,
"X": 10,
"L": 50,
"C": 100,
"D": 500,
"M": 1000
}
s.replace(/IV|IX|XL|XC|CD|CM/g,(m)=>{
//先计算例外的罗马数字组合,再在字符串里抹除
sum += ex_obj[m]
return ""
}).replace(/I|V|X|L|C|D|M/g,(m)=>{
//接力,剩下的都不是例外,直接按顺序计算罗马数字
sum += val_obj[m]
})
return sum;
};
力扣个人解题分享(13题): 罗马数字转整数
最新推荐文章于 2024-08-12 19:37:57 发布