力扣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)