首页 > 学院 > 开发设计 > 正文

Roman to Integer问题及解法

2019-11-06 07:22:23
字体:
来源:转载
供稿:网友

问题描述:

Given a roman numeral, convert it to an integer.

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

问题分析:

我们根据罗马数的特点,从后往前循环字符串,若i代表的值小于i+1代表的值,sum值减小,否则就增加。

详见代码:

class Solution {public:    int romanToInt(string s) {        map<char, int> T;        T['I'] = 1;        T['V'] = 5;        T['X'] = 10;        T['L'] = 50;        T['C'] = 100;        T['D'] = 500;        T['M'] = 1000;	                                   	   int sum = T[s[s.length() - 1]];	   for (int i = s.length() - 2; i >= 0; --i) 	   {	       if (T[s[i]] < T[s[i + 1]])	       {	           sum -= T[s[i]];	       }	       else	       {	           sum += T[s[i]];	       }	   }	   	   return sum;    }};·代码还是比较容易理解的~~


发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表