您的位置:首页 > 其它

LeetCode 13. Roman to Integer

2017-09-09 10:53 309 查看
Given a roman numeral, convert it to an integer.

Note:

Input is guaranteed to be within the range from 1 to 3999.

与之前的正好相反。

LeetCode 12. Integer to Roman

class Solution {
public:
int romanToInt(string s) {
/*
M:1000;D:500;C:100;L:50;X:10;V:5;I:1
*/
int len =s.size();
int m[30];
char n[30];
memset(n,0,sizeof(n));
memset(m,0,sizeof(m));
m['M'-'A'] = 1000;n['M'-'A'] = 'C';
m['D'-'A'] = 500;n['D'-'A'] = 'C';
m['C'-'A'] = 100;n['C'-'A'] = 'X';
m['L'-'A'] = 50;n['L'-'A'] = 'X';
m['X'-'A'] = 10;n['X'-'A'] = 'I';
m['V'-'A'] = 5;n['V'-'A'] = 'I';
m['I'-'A'] = 1;
if(len==0){
return 0;
}
else{
int i;
int ans = 0;
for(i = len-1;i>=0;i--){
ans += m[s[i]-'A'];
if(n[s[i]-'A']!=0&&i!=0) {
if(s[i-1]==n[s[i]-'A']){
ans-=m[s[i-1]-'A'];
i--;
}
}
}
return ans;
}
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  leetcode