标签:
/* 题意:罗马数字转换成阿拉伯数字 解法:用map映射一下,判断当前字母是否比下一个小,是的话ans加上下一字母的值-当前字母的值, 否则的话直接加上当前字母的值。 */ class Solution { public: int romanToInt(string s) { map<char,int>m; m[‘I‘] = 1; m[‘V‘] = 5; m[‘X‘] = 10; m[‘L‘] = 50; m[‘C‘] = 100; m[‘D‘] = 500; m[‘M‘] = 1000; int len = s.size(),ans = 0; for(int i = 0 ; i < len ; i++){ if(i+1<len && m[s[i]]<m[s[i+1]]){ ans+=m[s[i+1]] - m[s[i]];i++; }else{ ans+=m[s[i]]; } } return ans; } };
标签:
原文地址:http://www.cnblogs.com/llei1573/p/4437998.html