cec*_*ece 5 javascript integer roman-numerals
我尝试解决Leedcode问题13,问题是给定一个罗马数字,将其转换为整数。(输入保证在1到3999的范围内。)这是我下面的代码,我想知道为什么它只转换罗马数字中的第一个字符为整数?
var romanToInt = function(s) {
var result = 0;
if (s == null) {
result = 0;
}
var myMap = new Map();
myMap.set('I', 1);
myMap.set('V', 5);
myMap.set('X', 10);
myMap.set('L', 50);
myMap.set('C', 100);
myMap.set('D', 500);
myMap.set('M', 1000);
var len = s.length;
for (var i = 0; i < len; i++) {
if (myMap.get(s.charAt(i)) < myMap.get(s.charAt(i + 1))) {
result -= myMap.get(s.charAt(i))
} else {
result += myMap.get(s.charAt(i))
}
return result;
};
}
console.log(romanToInt('VI'));
console.log(romanToInt('V'));
console.log(romanToInt('VII'));Run Code Online (Sandbox Code Playgroud)
因为
return result;
Run Code Online (Sandbox Code Playgroud)
一次迭代后结束循环。将其向下移动一行。如果你进行正确的格式化,你就根本不会犯这样的错误;)
return result;
Run Code Online (Sandbox Code Playgroud)