博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
LeetCode OJ:Integer to Roman(转换整数到罗马字符)
阅读量:6701 次
发布时间:2019-06-25

本文共 1076 字,大约阅读时间需要 3 分钟。

Given an integer, convert it to a roman numeral.

Input is guaranteed to be within the range from 1 to 3999.

给定一个整数,将他转换到罗马字符。同样这里的罗马字符不会超过1000(M),PS:关于罗马字符的介绍看我的这篇文章 :

这里的大体思路是这样的,例如对于罗马字符952来说,起答题的可以分成三个组成部分, 就是 (1000 - 100):CM, (50): L, (1 + 1): II 这三个部分, 再看看1996, 实际上由1000 : M, (1000 - 100): CM, (100 - 10): XC, 5 : V, 1: I

也就是说900 400 90 40 9 4分别需要用两个的字母来表示,这些表示方法都是有限的,所以可以用一个vector意义列举出来,具体程序如下,比较难想到,一开始我也没想到, 看了 才懂了。代码如下:

1 class Solution { 2 public: 3     string intToRoman(int num) { 4         vector
digitNumber{
1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; 5 vector
alpha{
"M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I"}; 6 string result = ""; 7 int sz = digitNumber.size(); 8 for(int i = 0; num != 0; ++i){ 9 while(num >= digitNumber[i]){10 num -= digitNumber[i];11 result.append(alpha[i]);12 }13 }14 return result;15 }16 };

 

转载于:https://www.cnblogs.com/-wang-cheng/p/4861370.html

你可能感兴趣的文章
[AX]AX2012 SSRS报表使用Report Data Method
查看>>
Spring Boot 乐观锁加锁失败 - 集成AOP
查看>>
1-3-顺时针旋转矩阵
查看>>
可行性研究
查看>>
Linux文件查找命令find,xargs详述
查看>>
Spring WebFlux 响应式编程学习笔记(一)
查看>>
Dynamics CRM 2015 站点地图公告配置实体显示名称的变更
查看>>
java操作elasticsearch实现前缀查询、wildcard、fuzzy模糊查询、ids查询
查看>>
commons-fileupload、smartUpload和commons-net-ftp
查看>>
Simulated Annealing(模拟退火算法)
查看>>
面向对象-多态,反射
查看>>
sort函数
查看>>
用来做 favicon 的站点
查看>>
去除vue项目中的#及其ie9兼容性
查看>>
processon完全装逼指南
查看>>
理解什么是前后端分离
查看>>
testng.xml文件配置
查看>>
angular自定义指令详解
查看>>
C#常用单元测试框架比较:XUnit、NUnit和Visual Studio(MSTest)
查看>>
Android动画之逐帧动画(FrameAnimation)详解
查看>>