罗马数字表示法主要包含七个字符,即case:'I','V','X','L','C','D','M',分别对应十进制数字1,5,10,50,100,500,1000。
罗马数字表示法的原理是有规律的,实质上是将七个罗马字符对应的十进制数字进行加减操作,加减规律为:依次对罗马表示法的字符进行扫描,如果当前字符对应的十进制数字小于右边字符对应的十进制数字,那么就减去当前字符对应的十进制数字,否则加上当前字符对应的十进制数字;
举例如下:VII,其对应的十进制序列为5,1,1,故VII对应的十进制数字为5+1+1=7
class Solution {
public:
int romanToInt(string s)
{
int num[20]={0};
for(int i=0;i<s.length();i++)
{
switch(s[i])
{
case 'I':
num[i]=1;break;
case 'V':
num[i]=5;break;
case 'X':
num[i]=10;break;
case 'L':
num[i]=50;break;
case 'C':
num[i]=100;break;
case 'D':
num[i]=500;break;
case 'M':
num[i]=1000;break;
}
}
int res=0;
for(int i=0;i<s.length()-1;i++)
{
if(num[i]<num[i+1])
res-=num[i];
else
res+=num[i];
}
res+=num[s.length()-1];
return res;
}
};
本文详细介绍了罗马数字的表示法及转换成十进制整数的算法实现。通过七个基本字符'I','V','X','L','C','D','M',结合加减规则,文章提供了一个具体的C++代码示例,帮助读者理解如何高效地完成罗马数字到整数的转换。
6751

被折叠的 条评论
为什么被折叠?



