力扣13. 罗马数字转整数

Posted 幽殇默

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了力扣13. 罗马数字转整数相关的知识,希望对你有一定的参考价值。

在这里插入图片描述
题目地址

class Solution {
public:
    int romanToInt(string s) {
        int ans=0;
        map<char,int> mp;
        mp['I']=1;
        mp['V']=5;
        mp['X']=10;
        mp['L']=50;
        mp['C']=100;
        mp['D']=500;
        mp['M']=1000;
        ans+=mp[s[0]];
        for(int i=1;i<s.size();i++)
        {
            if(mp[s[i-1]]<mp[s[i]]) ans+=mp[s[i]]-2*mp[s[i-1]];//之前加了一次,还得再减一次
            else ans+=mp[s[i]];
        }
        return ans;
    }
};
class Solution {
public:
    int romanToInt(string s) {
        int ans=0;
        map<char,int> mp;
        mp['I']=1;
        mp['V']=5;
        mp['X']=10;
        mp['L']=50;
        mp['C']=100;
        mp['D']=500;
        mp['M']=1000;
        for(int i=0;i<s.size();i++)
        {
            if(mp[s[i]]<mp[s[i+1]]&&(i+1)<s.size()) ans-=mp[s[i]];
            else ans+=mp[s[i]];
        }
        return ans;
    }
};

以上是关于力扣13. 罗马数字转整数的主要内容,如果未能解决你的问题,请参考以下文章

算法学习13. 罗马数字转整数(leetcode力扣 - java / rust)

算法学习13. 罗马数字转整数(leetcode力扣 - java / rust)

LeetCode 罗马数字转整数

LeetCode刷题13-简单-罗马数字转整数

LeetCode刷题13-简单-罗马数字转整数

leetcode 13. 罗马数字转整数