[LeetCode] Roman to Integer

本文详细介绍了如何将罗马数字转换为整数的算法,包括解析罗马数字的基本规则和实现代码,确保输入范围在1到3999内。

Given a roman numeral, convert it to an integer.

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

 

思路:从各位向前处理,当前字符代表的数比后面一位字符代表的数大(包括等于),就加,小就减。

class Solution {
    public:  
        int romanToInt(string s)  
        {        // Note: The Solution object is instantiated only once and is reused by each test case.
            int result=0;    
            map<char,int> roman;  
            roman['I']=1;   
            roman['V']=5; 
            roman['X']=10;   
            roman['L']=50; 
            roman['C']=100;    
            roman['D']=500;   
            roman['M']=1000;   
            for(int i=s.length()-1;i>=0;i--)    
            {    
                if(i==s.length()-1)   
                {    
                    result=roman[s[i]];    
                    continue;
                }   
                if(roman[s[i]] >= roman[s[i+1]])    
                    result+=roman[s[i]];    
                else  
                    result-=roman[s[i]];    
            }   
            return result;  
        }   
};

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值