您的位置:首页 > 其它

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

2015-12-24 08:53 387 查看
题意分析:

将罗马数字转换为阿拉伯数字(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;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: