leetcode 13 Roman to Integer 罗马数组转整型

描述:

将一个字符串表示的罗马数字转为整数,范围0~3999

解决:

如果后一个比前一个大,则表示减,没什么技巧。

map<char, int> m = {{'I', 1}, {'V', 5}, {'X', 10}, {'L', 50}, {'C', 100}, {'M', 1000}, {'D', 500}};
int romanToInt(string s) {
    int ret = 0;
    int last = 1024;
    for (auto i : s) {
        if (m[i] > last) {
            ret = ret - last - last + m[i];
            last = 1024;
        }
        else
            ret = ret + m[i];
        last = m[i];
    }
    return ret;
}

 

posted on 2018-01-22 00:28  willaty  阅读(166)  评论(0编辑  收藏  举报

导航