2023每日刷题(三十七)
Leetcode—13.罗马数字转整数
算法思想
当前位置的元素比下个位置的元素小,就减去当前值,否则加上当前值
实现代码
int getValue(char c) {
switch(c) {
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 1;
}
int romanToInt(char* s) {
int len = strlen(s);
int ans = 0;
int i = 0;
int cur = 0, nxt = 0;
while(i < len) {
if(i + 1 == len) {
cur = getValue(s[i]);
ans += cur;
} else {
cur = getValue(s[i]);
nxt = getValue(s[i + 1]);
if(cur < nxt) {
ans += nxt - cur;
i += 2;
continue;
} else {
ans += cur;
}
}
i++;
}
return ans;
}
运行结果
之后我会持续更新,如果喜欢我的文章,请记得一键三连哦,点赞关注收藏,你的每一个赞每一份关注每一次收藏都将是我前进路上的无限动力 !!!↖(▔▽▔)↗感谢支持!