Roman to Integer

来源:互联网 发布:打车外卖优惠券源码 编辑:程序博客网 时间:2024/05/31 19:36

Roman to Integer

Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.


思路

罗马数字好累啊,原则就是有个map,大的在右边就是减,左边就是加
I 是1, V是5
IV 4 VI 6
DCXXI X:10 C:100 D:500
621


代码

class Solution {public:    int romanToInt(string s) {        unordered_map<char, int> rimap= {{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'D', 500}, {'M', 1000}};        int res;        for(int i = 0; i < s.size()-1; ++ i) {            if(rimap[s[i+1]] > rimap[s[i]]) {                res -= rimap[s[i]];            }            else {                res += rimap[s[i]];            }        }        res += rimap[s[s.size() - 1]];        return res;    }};
0 0
原创粉丝点击