LeetCode13:Roman to Integer

来源:互联网 发布:vr眼镜淘宝购物视频 编辑:程序博客网 时间:2024/06/10 04:28

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

#include<iostream>#include<algorithm>#include<map>#include<string>using namespace std;class Solution {public:int romanToInt(string s) {int ret = toNumber(s[0]);for (int i = 1; i < s.length(); i++) {if (toNumber(s[i - 1]) < toNumber(s[i])) {ret += toNumber(s[i]) - 2 * toNumber(s[i - 1]);//此处的系数2是为了防止连续递增的情况}else {ret += toNumber(s[i]);}}return ret;}int toNumber(char ch) {switch (ch) {case 'I' : return 1;case 'V': return 5;case 'X': return 10;case 'L':  return 50;case 'C': return 100;case 'D': return 500;case 'M': return 1000;}return 0;}};int main(){string s = "XLCL";Solution  sol;int t = sol.romanToInt(s);cout << t << endl;system("pause");return 0;}



0 0