lintcode-419-罗马数字转整数
419-罗马数字转整数
给定一个罗马数字,将其转换成整数。
返回的结果要求在1到3999的范围内。说明
什么是 罗马数字?
- https://en.wikipedia.org/wiki/Roman_numerals
 - https://zh.wikipedia.org/wiki/罗马数字
 - http://baike.baidu.com/view/42061.htm
 样例
IV -> 4
XII -> 12
XXI -> 21
XCIX -> 99标签
字符串处理 优步
思路
罗马数字编码规则见lintcode-418-整数转罗马数字
每次跟前面的数字比较,如果小于等于前面的数字,我们先加上当前的数字,如果大于的前面的数字,我们加上当前的数字减去二倍前面的数字,这样可以把在上一个循环多加数减掉
code
class Solution {
public:
    /*
     * @param s: Roman representation
     * @return: an integer
     */
    int romanToInt(string s) {
        // write your code here
        int result = 0;
        map<char, int> map{ { 'I', 1 },{ 'V', 5 },{ 'X', 10 },
                            { 'L', 50 },{ 'C', 100 },{ 'D', 500 },
                            { 'M', 1000 }
        };
        for (int i = 0; i < s.size(); i++) {
            if (i == 0 || map[s[i]] <= map[s[i - 1]]) {
                result += map[s[i]];
            }
            else {
                result += map[s[i]] - 2 * map[s[i - 1]];
            }
        }
        return result;
    }
};
												
											lintcode-419-罗马数字转整数的更多相关文章
- C#版 - Leetcode 13. 罗马数字转整数 - 题解
		
C#版 - Leetcode 13. 罗马数字转整数 - 题解 Leetcode 13. Roman to Integer 在线提交: https://leetcode.com/problems/ro ...
 - Leetcode#13. Roman to Integer(罗马数字转整数)
		
题目描述 罗马数字包含以下七种字符:I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即 ...
 - 【LeetCode】13. 罗马数字转整数
		
题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为 ...
 - Newtonsoft.Json C# Json序列化和反序列化工具的使用、类型方法大全  C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数  C# 算法题系列(一) 两数之和、无重复字符的最长子串  DateTime Tips  c#发送邮件,可发送多个附件  MVC图片上传详解
		
Newtonsoft.Json C# Json序列化和反序列化工具的使用.类型方法大全 Newtonsoft.Json Newtonsoft.Json 是.Net平台操作Json的工具,他的介绍就 ...
 - LeetCode 13 Roman to Integer(罗马数字转为整数)
		
题目链接 https://leetcode.com/problems/roman-to-integer/?tab=Description int toNumber(char ch) { switc ...
 - C# 算法题系列(二) 各位相加、整数反转、回文数、罗马数字转整数
		
各位相加 给定一个非负整数 num,反复将各个位上的数字相加,直到结果为一位数. 示例: 输入: 输出: 解释: 各位相加的过程为: + = , + = . 由于 是一位数,所以返回 . 进阶:你可以 ...
 - Leecode刷题之旅-C语言/python-13.罗马数字转整数
		
/* * @lc app=leetcode.cn id=13 lang=c * * [13] 罗马数字转整数 * * https://leetcode-cn.com/problems/roman-to ...
 - LeetCode:罗马数字转整数【13】
		
LeetCode:罗马数字转整数[13] 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 10 ...
 - 13. Roman to Integer[E]罗马数字转整数
		
题目 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from ...
 - LeetCode 13. 罗马数字转整数(Roman to Integer)
		
13. 罗马数字转整数 13. Roman to Integer 题目描述 罗马数字包含以下七种字符: I,V,X,L,C,D 和 M. 字符 数值 I 1 V ...
 
随机推荐
- Java Hibernate Validator
			
Hibernate Validator是Hibernate提供的一个开源框架,使用注解方式非常方便的实现服务端的数据校验. 官网:http://hibernate.org/validator/ hib ...
 - 关于python文件问题
			
一.python内部的首行命令 #!/usr/bin/env python #_*_coding:utf8_*_ 第一条命令用于Linux系统中的./命令,用于声明用什么Python解释器.第二条命令 ...
 - [project X] tiny210(s5pv210)上电启动流程(BL0-BL2)
			
建议参考文档: S5PV210-iROM-ApplicationNote-Preliminary-20091126 S5PV210_UM_REV1.1 项目介绍参考 [project X] tiny2 ...
 - aiohttp的模板
			
import aiohttp import asyncio import async_timeout from urllib.parse import urljoin,urldefrag root_u ...
 - PetaLinux安装及使用
			
Description/说明 PetaLinux版本:2016.4 操作系统版本:Ubuntu 16.04(如使用Ubuntu,墙裂建议使用16.04,其他版本官方手册并没有标明支持,可能会出现莫名其 ...
 - 【洛谷】 3264 [JLOI2015] 管道连接
			
前言: 如果还不知道斯坦纳树的童鞋可以看这两篇博客: 我的:https://blog.csdn.net/jerry_wang119/article/details/80001711 我一开始学 ...
 - 20155235 2016-2017-2 《Java程序设计》第9周学习总结
			
20155235 2016-2017-2 <Java程序设计>第9周学习总结 教材学习内容总结 第十六章 整合数据库 JDBC入门 JDBC简介 连接数据库 使用Statement.Res ...
 - 安装虚拟机和Linux系统的学习
			
安装虚拟机和Linux系统的学习(随笔3) 1.安装虚拟机 首先我按着老师给的链接上的步骤一步一步安装VirtualBox,进行得十分顺利. 接着则是在虚拟机上安装Ubuntu. 然而安装完成以后按要 ...
 - PostgreSQL参数学习:max_wal_senders
			
磨砺技术珠矶,践行数据之道,追求卓越价值回到上一级页面:PostgreSQL基础知识与基本操作索引页 回到顶级页面:PostgreSQL索引页[作者 高健@博客园 luckyjackgao@g ...
 - 2018.10.17校内模拟赛:T2神光
			
题面:pdf 首先排序,二分,然后怎么判定是否可行. 最简单的思路是,dp[i][j][k],到第i个,用了j次红光,k次绿光,前i个点都选上了,是否可行.然后转移就行. 然后考试的时候就想到这了,往 ...