题目描述
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
实现代码:
class Solution {
public:
int val[255];
void init()
{
val['I'] = 1; val['V'] = 5; val['X'] = 10; val['L'] = 50;
val['C'] = 100; val['D'] = 500; val['M'] = 1000;
}
int romanToInt(string s) {
init();
int ret = 0;
for (int i = 0; i < s.size(); i++)
{
if (i > 0 && val[s[i]] > val[s[i - 1]])
{
ret += val[s[i]] - 2 * val[s[i - 1]]; //后面的大于前面的;
}
else
{
ret += val[s[i]]; //前面的大直接加上;
}
}
return ret;
}
};