lintcode刷题——罗马数字转整数
lintcode之罗马数字转整数,原题如下所示:
给定一个罗马数字,将其转换成整数。
返回的结果要求在1到3999的范围内。
什么是 罗马数字?
- https://en.wikipedia.org/wiki/Roman_numerals
- https://zh.wikipedia.org/wiki/%E7%BD%97%E9%A9%AC%E6%95%B0%E5%AD%97
- http://baike.baidu.com/view/42061.htm
IV
-> 4
XII
-> 12
XXI
-> 21
XCIX
-> 99
具体思路如下:
1、首先将罗马数字里面特殊的字符表示出来,使用switch,case语句;
2、考虑到若左边的数小于右边的数,应该是相减,反之应相加,对这两种情况用一个方法表示出来。即若是左边大于先将罗马数字除了最后一位之外全部加上,若是左边小于右边,则加上负的,最后统一再加上最后一位数字表示的整数值。
具体实现的c++代码如下:
class Solution {
public:
/**
* @param s Roman representation
* @return an integer
*/
int singleword(char a)
{
switch(a)
{
case 'I' : return 1;
case 'V' : return 5;
case 'X' : return 10;
case 'L' : return 50;
case 'C' : return 100;
case 'D' : return 500;
case 'M' : return 1000;
}
return -1;
}
int romanToInt(string& s) {
// Write your code here
int l=s.size();
if(l==0)
{
return 0;
}
int i;
int sum=0;
for(i=0;i<l-1;i++)
{
if(singleword(s[i])>=singleword(s[i+1]))
{
sum+=singleword(s[i]);
}
else
{
sum-=singleword(s[i]);
}
}
sum+=singleword(s[l-1]);
return sum;
}
};
lintcode刷题——罗马数字转整数相关推荐
- 二、lintcode刷题记录--二叉树的路径和
LintCode刷题记录---二叉树的路径和(效率可能没有那些专业的高,主要是代码结构比较简单) ) 题目地址:http://www.lintcode.com/zh-cn/problem/binary ...
- 菜菜的刷题日记 | 12.整数转罗马数字
系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...
- LintCode刷题:有效数字
今天第一次是跟随一个博主学习足迹知道有LintCode 和LeetCode这两个刷题网址,专为学编程的同志练手,我希望我可以每天坚持刷一题!!!! 第一次不知道直接点"帮我挑一题" ...
- LintCode刷题(入门篇)
最近在玩LintCode上面的算法题.下面分享一下部分题目的答案.如果其他同学有更好的答案,可以和我交流讨论,本人菜鸟一个,各位大佬多指点. 同时说一下,这个上面的二叉树 和 链表 我不懂,所以这类题 ...
- LeetCode题组:第13题-罗马数字转整数
1.题目:回文数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做I ...
- lintcode刷题 14. 二分查找,迭代和二分法Python实现
14. 二分查找 描述 给定一个排序的整数数组(升序)和一个要查找的整数target,用O(logn)的时间查找到target第一次出现的下标(从0开始),如果target不存在于数组中,返回-1. ...
- LeetCode:第13题 罗马数字转整数 python语言实现 2020.2.3
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L ...
- 算法题---罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I : 1 V : 5 X : 10 L : 50 C : 100 D : 500 M : 1000 例如, 罗马数字 ...
- 力扣13题---罗马数字转整数
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并 ...
- LintCode刷题——不同的二叉查找树I、II
不同的二叉查找树I: 题目内容: 给出 n,问由 1...n 为节点组成的不同的二叉查找树有多少种? 样例: 给出n = 3,有5种不同形态的二叉查找树: 1 3 3 2 1\ / / / \ \3 ...
最新文章
- py2 HTMLTestRunner报告
- 访问vue实例中的数据
- 微服务2.0技术栈选型手册,值得架构师借鉴
- java url 授权_Java:如何使用UrlConnection发布请求与授权?
- 【转】Thunderbird中配置签名
- DBA跳槽应该去大公司还是小公司?99%的人这样说...
- SQL Server 漏洞评估工具
- javax maven项目缺少_教育平台项目后台管理系统:介绍与搭建
- 欧姆龙修复PLC编程软件中的多个高危漏洞
- Cesium知识点:根据经纬度获取高程
- 杰·亚伯拉罕的产品营销35种策略完整版
- Linux中vi命令详解
- 步进电机控制和步进电机原理
- 快递单号快速查询,自动识别快递公司
- 大地测量常用的四种坐标系
- 单击Artwork时没有弹窗的问题
- 关于在多重积分以及曲线曲面积分中对称性的应用
- Swoole 从0开始搭建直播平台
- php充值赠送如何结算,餐饮会员充值赠送怎么计算成本?
- 什么是FreeMarker