1.Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
Difficulty:Easy
Explanation:
1.只要从大到小将这个整型数字分解,再转换成罗马数字即可。
code:
class Solution {
public:
int romanToInt(string s) {
map<char, int> transmap;
int sum = 0;
transmap.insert(pair<char, int>((char)'I', 1));
transmap.insert(pair<char, int>((char)'V', 5));
transmap.insert(pair<char, int>((char)'X', 10));
transmap.insert(pair<char, int>((char)'L', 50));
transmap.insert(pair<char, int>((char)'C', 100));
transmap.insert(pair<char, int>((char)'D', 500));
transmap.insert(pair<char, int>((char)'M', 1000));
for (int i = 0; i < s.size(); i++)
{
if (s[i] == 'I' || s[i] == 'X' || s[i] == 'C')
{
if (i+1<s.size()&&transmap[s[i + 1]] > transmap[s[i]])
{
sum = sum + -1 * transmap[s[i]];
continue;
}
}
sum = sum + transmap[s[i]];
}
return sum;
}
};