罗马数字转换成整数(注意罗马数字的大小表示问题)
罗马数字规则:
1, 罗马数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)。
罗马数字中没有“0”。
2, 重复次数:一个罗马数字最多重复3次。
3, 右加左减:
在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。
在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。
4, 左减的数字有限制,仅限于I、X、C,且放在大数的左边只能用一个。
(*) V 和 X 左边的小数字只能用Ⅰ。
(*) L 和 C 左边的小数字只能用X。
(*) D 和 M 左 边的小数字只能用C。
实现代码:
class Solution
{
public:
int romanToInt(string s)
{
char c[10][10][10]={{"0","I","II","III","IV","V","VI","VII","VIII","IX"},{"0","X","XX","XXX","XL","L","LX"
,"LXX","LXXX","XC"},{"0","C","CC","CCC","CD","D",
"DC","DCC","DCCC","CM"},{"0","M","MM","MMM"}};
int num=0,i;
for(i=0;i<s.size();i++)
{
if(s[i]=='I') num+=1;
if(s[i]=='V')
{
if(i!=0 && s[i-1]=='I') num+=3;
else num+=5;
}
if(s[i]=='X')
{
if(i!=0 && s[i-1]=='I') num+=8;
else num+=10;
}
if(s[i]=='L')
{
if(i!=0 && s[i-1]=='X') num+=30;
else num+=50;
}
if(s[i]=='C')
{
if(i!=0 && s[i-1]=='X') num+=80;
else num+=100;
}
if(s[i]=='D')
{
if(i!=0 && s[i-1]=='C') num+=300;
else num+=500;
}
if(s[i]=='M')
{
if(i!=0 && s[i-1]=='C') num+=800;
else num+=1000;
}
}
return num;
}
};
罗马数字转换成整数(注意罗马数字的大小表示问题)相关推荐
- python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例
本文实例讲述了Python3.5实现的罗马数字转换成整数功能.分享给大家供大家参考,具体如下: 问题概述: 给定一个罗马数字 ,将罗马数字转换成整数. 如罗马数字I,II,III,IV,V分别代表数字 ...
- 计蒜课挑战难题:罗马数字转换成整数
给定一个罗马数字s,( I<=s<=MMMCMXCIX)(即1到3999),将罗马数字转换成整数. 如罗马数字I,II,III,IV,V分别代表数字1, 2, 3, 4, 5. 格式: 第 ...
- 罗马数字 java_java将罗马数字转换成整数算法详解-Fun言
题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M.字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为 ...
- 菜鸟扣代码第二天--leetcode13罗马数字转换成整数
题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...
- 【LeetCode】【Java】13. 罗马数字转整数——给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。
13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 ...
- c语言罗马数字换成整数,leetcode 13 罗马数字转整数 C语言
leetcode 13 罗马数字转整数 原题 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 ...
- 185-将罗马数字转成整数
题目如下: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...
- 罗马数字转换成阿拉伯数字
罗马数字转换成阿拉伯数字 Roman to integer 给出一个罗马数字(字符串),返回此数字的阿拉伯数字(int) Given a roman numeral, convert it to an ...
- 【C++】将罗马数字转换成阿拉伯数字
题目:Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...
最新文章
- Android - N级树形结构实现
- 工作改进三步曲:简化、优化、固化
- 2021 年 JavaScript 大事记
- Selenium脚本编写技巧和窍门
- mysql数据库改成支持中文_修改Mysql编码支持中文
- python容量变化类型有哪些_python基础数据类型补充以及编码的进阶
- 榛子云短信-微信小程序60秒倒计时插件
- 用 SQL 脚本读取Excel 中的sheet数量及名称
- 安徽省大数据比赛——数据可视化实战
- IT行业,应届生找工作遇到“招转培”怎么办?
- (三)基于Phyphox的三线摆法测量物体转动惯量
- 5.5mysql_MySQL5.5-MySQL5.5下载 v5.5.60.1官方版 64位/32位-第五资源
- crosses initialization of “XXX”
- 在64位win7上面卸载IE8
- 动态随机存储器的刷新
- SAN存储和服务器虚拟化安装方案,ESX/ESXi虚拟化系统与SAN存储结构结合的配置安装流程...
- 聊城开发区杨广平书记一行前来酷客多小程序总部视察
- M1 Mac上更好的 Golang 使用方案
- 既有住宅加装电梯数学建模问题
- 【译】什么才是优秀的代码
热门文章
- 8年美术外包老司机现身说法:我们与游戏厂商如何更有效合作
- linux消耗ram内存吗,linux - 释放Ubuntu 8.04服务器上的内存(RAM) - Ubuntu问答
- 【转载】在IDEA 中使用 mvn install 添加本地 jar包依赖
- 计算机考研复试占比小的学校,赞!这所211学校复试居然只占20%!——管理科学与工程考研2021学校揭秘!...
- SeaJS学习之use函数
- MLA Review之二:决策树
- 安卓手机上app常驻保活方案
- 华为真机调试watch系列手表
- 计算机管理服务所有任务,电脑Windows任务管理器显示不全的5个解决方法
- 微博评论内容的Chatgpt 话题聚焦和情感分析 情感分析LDA主题可视化多元线性回归