[LeetCode]Roman to Integer

const string roman[]={
	"I", "II", "III", "IV", "V", "VI", "VII", "VIII", "IX",
	"X", "XX", "XXX", "XL", "L", "LX", "LXX", "LXXX", "XC",
	"C", "CC", "CCC", "CD", "D", "DC", "DCC", "DCCC", "CM",
	"M", "MM", "MMM"};
const int integer[]={
	1,2,3,4,5,6,7,8,9,
	10,20,30,40,50,60,70,80,90,
	100,200,300,400,500,600,700,800,900,
	1000,2000,3000};
class Solution {
public:
    int romanToInt(string s) {
        // IMPORTANT: Please reset any member data you declared, as
        // the same Solution instance will be reused for each test case.
		if(s=="") return NULL;
        int ret=0;
		int len=s.length();
		int i,j=0;
		for(i=29;i>=0;i--)
		{
			string temp(s,j,roman[i].size());
			if(temp==roman[i])
			{
				ret+=integer[i];
				j+=roman[i].size();
			}
		}
		return ret;
    }
};

  

Given a roman numeral, convert it to an integer.

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

思考:整数1-3999,暴力求解。

 

posted @ 2013-11-08 18:11  七年之后  阅读(168)  评论(0编辑  收藏  举报