实现罗马数字与整数的互转。 数字大小为[1, 3999]之间。

罗马数字只有7个字母组成,每个字母代码的字如下

字母 M D C L X V I
代表数字 1000 500 100 50 10 5 1

四个规则
相同的数字连写, 所表示的数等于这些数字相加得到的数。如 XXX表示 30
小的数字在大的数字的右边, 所表示的数等于这些数字相加得到的数 如VIII 表示8
小的数字(限于I, X, C)在大的数字的左边, 所表示的数等于大数减去小的数: 如IV 表示4
在一个数的上面画一条横线, 表示这个数增值1000倍(由于题目只考虑4000以内的数,所以这条规则不用考虑)。

class Solution {
public:string intToRoman(int num) {if(num<1||num>3999) return 0;string res="";vector<int> key={1000,900,500,400,100,90,50,40,10,9,5,4,1};vector<string> value={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};for(int i=0;i<key.size();++i){int count=num/key[i];for(int j=0;j<count;++j)res+=value[i];num=num%key[i];}return res;   }
};

罗马数字转换为Integer


/*
分析:从前往后扫描,用一个临时变量记录分段数字
如果当前比前一个大,说明这一段的值应该是当前这个值减去上一个值。
比如:IV=5-1;
否则,将当前值加入到结果中,然后开始下一段记录。
比如:VI=5+1,II=1+1
*/
class Solution {
public:inline int map(char c){switch(c){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;default:return 0;}}int romanToInt(string s) {int result=0;for(int i=0;i<s.size();i++){if(i>0&&map(s[i])>map(s[i-1])){result+=(map(s[i])-2*map(s[i-1]));}else{result+=map(s[i]);}}return result;}
};

刷题-整数和罗马数字转换相关推荐

  1. leetcode算法刷题记录之罗马数字转整数

    题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符          数值 I             1 V             5 X             ...

  2. LeetCode刷题13-简单-罗马数字转整数

    文章目录 前言 一.题目描述 二.题目解析 三.代码 结语 前言 算法作为极其重要的一点,是大学生毕业找工作的核心竞争力,所以为了不落后与人,开始刷力扣算法题! 第一遍,不求最优解,但求能过!!!

  3. go语言刷题:8. 字符串转换整数 (atoi)

    申明:本文只用做自己学习记录 题目 实现一个 myAtoi(string s) 函数,使其能将字符串转换成一个 32 位有符号整数(类似 C/C++ 中的 atoi 函数). 函数 myAtoi(st ...

  4. LeetCode刷题: 整数反转

    题目 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转.示例 1:输入: 123输出: 321示例 2:输入: -123输出: -321示例 3:输入: 120输出: 21注意: ...

  5. LeetCode第12题 整数转罗马数字

    /* 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为 ...

  6. leedcode刷题——整数反转

    给你一个 32 位的有符号整数 x ,返回 x 中每位上的数字反转后的结果. 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0. 示例 1: 输入:x = ...

  7. LeetCode刷题——整数反转

    目录 一.题目描述 二.题解 三.源码 一.题目描述 二.题解 三.源码 class Solution:def reverse(self, x: int) -> int:if -10 < ...

  8. C++刷题记录总结--常用知识点

    刷题随笔记录~ transform转换容器的元素 string s="2019-07-25 14:45:23";transform(s.begin(),s.end(),s.begi ...

  9. 菜菜的刷题日记 | 12.整数转罗马数字

    系列索引:菜菜的刷题日记 | 被LeetCode用Python狂虐的那段日子 菜鸡的刷题之路--2022/1/24,这几天忙着肝并发编程,题在做但是没空写题解,今晚补一篇. 文章目录 [题目] [官方 ...

最新文章

  1. 【 全干货 】5 分钟带你看懂 Docker !
  2. InfluxDB 分布式时间序列数据库环境搭建——据qcon大会2016qiniu说集群很坑且闭源了...
  3. Maven(2)--生命周期以及插件目标
  4. 【C++深度剖析教程31】被遗弃的多重继承
  5. Dockerfile语法简介(精)
  6. dz论坛修改html编辑器,discuz二次开发更换百度ueditor编辑器
  7. [Java] 蓝桥杯BASIC-24 基础练习 龟兔赛跑预测
  8. java feign请求pathvariable_8、服务发现amp;服务消费者Feign
  9. SQL SERVER 数据库表索引重建
  10. 【紫书第五章】String、结构体、部分STL的常见用法
  11. mysql sql model设置_操作mysql model
  12. QT MD4 MD5 Sha1等几种加密方式
  13. html5 电子白板 直播,基于HTML5技术的智能终端电子白板软件的设计与实现
  14. MSP430F149与ESP8266串口通信(中)
  15. windows系统IP地址、localhost、127.0.0.1 、0.0.0.0和 本机IP区别
  16. Q4营收突破20亿且连续四个季度盈利斗鱼驶入“后直播时代”快车道
  17. stm32控制半导体制冷器实现饮水机保温制冷功能
  18. 新加硬盘但计算机里找不着,电脑开机找不到硬盘怎么办
  19. JavaScript XHR使用 JSONPlaceholder API 并本地搭建JSON server REST API
  20. PHP 版 微信小程序商城 源码和搭建

热门文章

  1. 2.企业发放的奖金根据利润提成。
  2. Android AMS(android 11)
  3. 面试专题:QTrade(苹果树)面试复盘
  4. 【python量化交易学习】pandas获取mysql数据,使用pyecharts画K线图,ma移动均线。
  5. 数字 IC 技能拓展(16)Zynq 与 Pynq 都是什么呢
  6. 水雨情监测 水库水雨情在线监测
  7. 60 个让程序员崩溃的瞬间,哈哈哈哈哈哈哈哈哈
  8. UVa 1600 巡逻机器人(Patrol Robot)
  9. could和may区别请求_can和may的区别及用法
  10. Java语言程序设计与数据结构(进阶篇)梁勇课后题ex——19