罗马数字转换python_阿拉伯数字转换成罗马数字
阿拉伯数字转换成罗马数字
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_阿拉伯数字转换成罗马数字相关推荐
- 金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
金额转换,阿拉伯数字转换成中国传统形式. 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整 package com.itheima;import java.util.Arr ...
- java练习:金额转换,阿拉伯数字转换成中文传统形式
需求:金额转换,阿拉伯数字转换成中文传统形式 ,例如 101000001010 转为 壹仟零壹拾亿零壹仟零壹拾圆整 最终版: import java.util.Scanner; pub ...
- 输入数字输出中文大写python_阿拉伯数字转换成中文大写,中文货币的表达方式 python...
最近在qq群经常看到一个题目,网上查找资料发现,有人实现了一半内容,都是在处理0的问题上卡住了,自己就尝试用刚开始学习的python写了一下.python处理这个问题还是比较方便. 题目: 代码: # ...
- 安卓篇.将阿拉伯数字转化成罗马数字
// 传入阿拉伯数字返回罗马数字,等于0直接返回0 public static String intToRoman(int num) {if(num == 0){return Bibcont.zero ...
- 金额转换,阿拉伯数字转换成中国传统形式。例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
public class Test{ // 定义三个字符数组,把中文的数字形式存储下来,再下面代码中获取下标,设置对应中文 private static char[] hunit = { '拾', ' ...
- 计蒜客挑战难题:整数转换成罗马数字
给定一个整数num,( 1<=num<=3999),将整数转换成罗马数字. 如1,2,3,4,5对应的罗马数字分别位I,II,III,IV,V等. 格式: 第一行输入一个整数,接下来输出对 ...
- JavaScript练习 - 数字转换成罗马数字
摘要:以下数字转换成罗马数字的方法估计是最傻的办法了. 一.思路 (1)把数字拆分,把每个数字都存入数组arr中: (2)将数组arr中非0的数字存入新的数组arr1中: (3)把数组arr1中的每个 ...
- 整型数字转换成罗马数字
版权声明:本文为博主原创文章,转载请注明出处. 个人博客地址:https://yangyuanlin.club 欢迎来踩~~~~ integer to roman Given an integer, ...
- 【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 ...
- Leetcode:给定一个整数,将其转换成罗马数字
Given an integer, convert it to a roman numeral. Input is guaranteed to be within the range from 1 t ...
最新文章
- windows端自动化遇到的问题
- 汇编和python-PyAsm-在python中嵌入汇编 | 学步园
- 蓝桥杯 1427 买不到的数目 (模拟)
- 改工作空间_打拼六年换的新房,装修花了17万,飘窗改柜子很实用,谁见过?...
- 【渝粤题库】国家开放大学2021春1332中文学科论文写作题目
- shell分割参数为数组并循环执行jar,异常时退出循环
- 自媒体文案伪原创文章生成器软件
- TI 16位 3.3V--5V 电平转换芯片 SN74ALVC164245
- docker安装配置 阿里云加速器
- 软件测试人员,究竟怎么霸气过七夕?!大神攻略请笑纳!
- git 本地多账号管理
- 【开源方案】PPT/PPTX转image图片
- 微软遥测服务服务器,使用 .REST 配置 Azure 媒体服务遥测 | Microsoft Docs
- 电子体温计为什么会说不如水银准,分析了一下,这个锅它不背!!!
- Pr:更改文本和形状的外观
- 【OpenCV实战】OpenCV实现人脸检测详解(含代码)
- DOSBOX + MASM
- ue4 后期处理景深_【UE4设计师】2-3后期处理效果——使用景深设置电影拍摄
- 【DL】第 11 章:自动驾驶汽车的深度学习
- 品优购项目的制作——知识分享