LeetCode-13-Roman to Integer(number/模拟)-Easy

来源:互联网 发布:iphone设计软件 编辑:程序博客网 时间:2024/06/07 11:45

题意分析:

将罗马数字转换为阿拉伯数字(0-3999);


题目分析:

简单模拟;


解题代码:

class Solution {public:    int romanToInt(string s) {        map<string, int> m;        m.insert(pair<string, int>("0",0));        m.insert(pair<string, int>("I",1));        m.insert(pair<string, int>("V",5));        m.insert(pair<string, int>("X",10));        m.insert(pair<string, int>("L",50));        m.insert(pair<string, int>("C",100));        m.insert(pair<string, int>("D",500));        m.insert(pair<string, int>("M",1000));                int ans=0;        int valNext;        for(int i=0;i<s.length();i++){            string t="";            t+=s[i];            int val=m.find(t)->second;                        if(i+1<s.length()){                string n="";                n+=s[i+1];                valNext=m.find(n)->second;                                if(val<valNext){                    ans-=val;                }else{                    ans+=val;                }            }else{                ans+=val;            }        }                return ans;    }};


0 0
原创粉丝点击