http://oj.leetcode.com/problems/roman-to-integer/
class Solution {
public:
int romanToInt(string s) {
// Start typing your C/C++ solution below
// DO NOT write int main() function
vector<int> nums;
for(int i=0;i<s.length();i++){
if(s[i]=='I') nums.push_back(1);
else if(s[i]=='V') nums.push_back(5);
else if(s[i]=='X') nums.push_back(10);
else if(s[i]=='L') nums.push_back(50);
else if(s[i]=='C') nums.push_back(100);
else if(s[i]=='D') nums.push_back(500);
else if(s[i]=='M') nums.push_back(1000);
}
int res=0;
for(int i=0;i<nums.size();i++){
if((i+1)<nums.size()&&nums[i]<nums[i+1]) res-=nums[i];
else res+=nums[i];
}
return res;
}
};
本文介绍了一种将罗马数字转换为整数的C++实现方法。通过解析罗马数字的构成规律,该算法能正确处理特殊情况,如IV表示4。采用vector存储中间结果并遍历调整,最终返回整数值。
186

被折叠的 条评论
为什么被折叠?



