首页 > 代码库 > [LeetCode OJ] Roman to Integer
[LeetCode OJ] Roman to Integer
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
下面是百度得到的关于罗马数的解释:
我的代码:
1 class Solution { 2 public: 3 int romanToInt(string s) { 4 map<char,int> conversion; 5 conversion.insert(make_pair(‘I‘,1)); 6 conversion.insert(make_pair(‘V‘,5)); 7 conversion.insert(make_pair(‘X‘,10)); 8 conversion.insert(make_pair(‘L‘,50)); 9 conversion.insert(make_pair(‘C‘,100));10 conversion.insert(make_pair(‘D‘,500));11 conversion.insert(make_pair(‘M‘,1000));12 int ans=0;13 for(unsigned i=0; i<s.size(); i++)14 {15 if(s[i]==‘V‘ || s[i]==‘L‘ || s[i]==‘D‘) //不能把基本数字V 、L 、D 中的任何一个作为小数放在大数的左边采用相减的方法构成数目16 ans += conversion[s[i]];17 else //基本数字Ⅰ、X 、C 中的任何一个,自身连用构成数目,或者放在大数的右边连用构成数目,都不能超过三个;放在大数的左边只能用一个18 {19 if(i<s.size()-1 && conversion[s[i]]<conversion[s[i+1]])20 {21 ans += conversion[s[i+1]]-conversion[s[i]];22 i++;23 }24 else25 ans += conversion[s[i]];26 }27 }28 return ans;29 }30 };
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。