您的位置:首页 > 其它

LeetCode OJ--Roman to Integer

2014-01-06 19:04 405 查看
http://oj.leetcode.com/problems/roman-to-integer/

罗马数字到自然数字的转换,先自己查相关的背景知识,然后分析清楚了。可以简化写,嗯嗯。“简化”,抓到本质。

#include <iostream>
#include <map>
#include <string>
using namespace std;

class Solution {
public:
int change(char ch)
{
int num = 0;
switch(ch)
{
case 'I':
num = 1;
break;
case 'V':
num = 5;
break;
case 'X':
num = 10;
break;
case 'L':
num = 50;
break;
case 'C':
num = 100;
break;
case 'D':
num = 500;
break;
case 'M':
num = 1000;
}
return num;
}
int romanToInt(string s) {
int i = 0;
int sum = 0;
int num = 1;
for(i = 0;i<s.size()-1;i++)
{
if(change(s[i])<change(s[i+1]))
sum -= change(s[i]);
else
sum += change(s[i]);
}
sum += change(s[i]);
return sum;
}
};

int main()
{
Solution myS;
myS.romanToInt("DCXXI");
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: