阿拉伯数字转换成罗马数字

Integer to Roman

给出一个阿拉伯数字,返回此数字的罗马数字表示

Given an integer, convert it to a roman numeral.

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

example 1

input: CCCLXXXIX

output: 389

思路

用表记录关键的罗马数字和阿拉伯数字,将输入循环除以1000,900,500 ... 这些关键数字,余数为y,将对应的罗马字符串加y次

看到大神的思路,也是查表,但更加精妙,将数字分解为千位,百位,十位和个位,然后查表将字符串相加,很神奇的思路,刚看到的时候惊叹了一下,代码如下

代码

class Solution(object):

# 思路1

def intToRoman1(self, num):

"""

:type num: int

:rtype: str

"""

arabic = [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1]

roman = ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']

ret = ''

i = 0

while num:

yu = num // arabic[i]

ret += roman[i] * yu

num = num - yu * arabic[i]

i += 1

return ret

# 神奇的思路2

def intToRoman2(self, num):

M = ['', 'M', 'MM', 'MMM'] #0, 1000, 2000, 3000

C = ['', 'C', 'CC', 'CCC', 'CD', 'D', 'DC', 'DCC', 'DCCC', 'CM'] #0, 100, 200, ... , 900

X = ['', 'X', 'XX', 'XXX', 'XL', 'L', 'LX', 'LXX', 'LXXX', 'XC'] #0, 10, 20, ... , 90

I = ['', 'I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX'] #0, 1, 2, ... , 9

return M[num // 1000] + C[(num % 1000) // 100] + X[(num % 100) // 10] + I[num % 10]

本题以及其它leetcode题目代码github地址: github地址

文章来源:segmentfault,作者:冯了个杰。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件至:william.shi#ucloud.cn(邮箱中#请改为@)进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容。

后台-系统设置-扩展变量-手机广告位-内容正文底部

罗马数字转换python_阿拉伯数字转换成罗马数字相关推荐

  1. 金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整

    金额转换,阿拉伯数字转换成中国传统形式. 例如:101000001010   转换为   壹仟零壹拾亿零壹仟零壹拾圆整 package com.itheima;import java.util.Arr ...

  2. java练习:金额转换,阿拉伯数字转换成中文传统形式

    需求:金额转换,阿拉伯数字转换成中文传统形式   ,例如 101000001010   转为     壹仟零壹拾亿零壹仟零壹拾圆整 最终版: import java.util.Scanner; pub ...

  3. 输入数字输出中文大写python_阿拉伯数字转换成中文大写,中文货币的表达方式 python...

    最近在qq群经常看到一个题目,网上查找资料发现,有人实现了一半内容,都是在处理0的问题上卡住了,自己就尝试用刚开始学习的python写了一下.python处理这个问题还是比较方便. 题目: 代码: # ...

  4. 安卓篇.将阿拉伯数字转化成罗马数字

    // 传入阿拉伯数字返回罗马数字,等于0直接返回0 public static String intToRoman(int num) {if(num == 0){return Bibcont.zero ...

  5. 金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整

    public class Test{ // 定义三个字符数组,把中文的数字形式存储下来,再下面代码中获取下标,设置对应中文 private static char[] hunit = { '拾', ' ...

  6. 计蒜客挑战难题:整数转换成罗马数字

    给定一个整数num,( 1<=num<=3999),将整数转换成罗马数字. 如1,2,3,4,5对应的罗马数字分别位I,II,III,IV,V等. 格式: 第一行输入一个整数,接下来输出对 ...

  7. JavaScript练习 - 数字转换成罗马数字

    摘要:以下数字转换成罗马数字的方法估计是最傻的办法了. 一.思路 (1)把数字拆分,把每个数字都存入数组arr中: (2)将数组arr中非0的数字存入新的数组arr1中: (3)把数组arr1中的每个 ...

  8. 整型数字转换成罗马数字

    版权声明:本文为博主原创文章,转载请注明出处. 个人博客地址:https://yangyuanlin.club 欢迎来踩~~~~ integer to roman Given an integer, ...

  9. 【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 ...

  10. Leetcode:给定一个整数,将其转换成罗马数字

    Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...

最新文章

  1. windows端自动化遇到的问题
  2. 汇编和python-PyAsm-在python中嵌入汇编 | 学步园
  3. 蓝桥杯 1427 买不到的数目 (模拟)
  4. 改工作空间_打拼六年换的新房,装修花了17万,飘窗改柜子很实用,谁见过?...
  5. 【渝粤题库】国家开放大学2021春1332中文学科论文写作题目
  6. shell分割参数为数组并循环执行jar,异常时退出循环
  7. 自媒体文案伪原创文章生成器软件
  8. TI 16位 3.3V--5V 电平转换芯片 SN74ALVC164245
  9. docker安装配置 阿里云加速器
  10. 软件测试人员,究竟怎么霸气过七夕?!大神攻略请笑纳!
  11. git 本地多账号管理
  12. 【开源方案】PPT/PPTX转image图片
  13. 微软遥测服务服务器,使用 .REST 配置 Azure 媒体服务遥测 | Microsoft Docs
  14. 电子体温计为什么会说不如水银准,分析了一下,这个锅它不背!!!
  15. Pr:更改文本和形状的外观
  16. 【OpenCV实战】OpenCV实现人脸检测详解(含代码)
  17. DOSBOX + MASM
  18. ue4 后期处理景深_【UE4设计师】2-3后期处理效果——使用景深设置电影拍摄
  19. 【DL】第 11 章:自动驾驶汽车的深度学习
  20. 品优购项目的制作——知识分享

热门文章

  1. oracle显示工资计算税款,工资税收如何计算公式
  2. 解读住房公积金提取买房、租房、贷款新政
  3. Mac Chrome 安装插件(无VPN)
  4. 充电枪cp信号控制板_交流充电桩控制原理
  5. 2020年云计算就业前景怎么样?
  6. python 加密文本_Python文件或文本加密(4种方法)
  7. 蓝牙HC05主从设置连接说明
  8. 0806 07 08 09 12上午数据库
  9. Python+Opencv检测模糊图片
  10. postman测试上传图片接口步骤教程