码迷,mamicode.com
首页 > 其他好文 > 详细

Leetcode:Roman to Integer

时间:2015-12-07 22:38:39      阅读:145      评论:0      收藏:0      [点我收藏+]

标签:

Roman to Integer:

题目:

Given a roman numeral, convert it to an integer.

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

解法(C++):

class Solution {
private:
int mean(char c)
{
int data = 0;
switch(c)
{
case ‘I‘:data = 1;break;
case ‘V‘:data = 5;break;
case ‘X‘:data = 10;break;
case ‘L‘:data = 50;break;
case ‘C‘:data = 100;break;
case ‘D‘:data = 500;break;
case ‘M‘:data = 1000;break;
}
return data;
}
public:
int romanToInt(string s) {
int result = 0;
int n = s.size();
result += mean(s.at(0));
for(int i = 1; i < n; i++)
{
int pre = mean(s.at(i - 1));
int cur = mean(s.at(i));
if(pre >= cur)
{

result += cur;
}
else
{
result += (cur - 2 * pre);
}
}
return result;

}
};

 

【注】switch一定要加break

Leetcode:Roman to Integer

标签:

原文地址:http://www.cnblogs.com/mj-selina/p/5027454.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!