LeetCode 12.整数转罗马数字 Java实现

Java实现 LeetCode 12 整数转罗马数字 12. 整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,... 阅读详情

题目


罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

字符          数值
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做  XXVII, 即为 XX + V + II 。

通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

  • I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
  • X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
  • C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。

示例 1:

输入: 3
输出: "III"

示例 2:

输入: 4
输出: "IV"

示例 3:

输入: 9
输出: "IX"

示例 4:

输入: 58
输出: "LVIII"
解释: L = 50, V = 5, III = 3.

示例 5:

输入: 1994
输出: "MCMXCIV"
解释: M = 1000, CM = 900, XC = 90, IV = 4.

代码


class Solution {
    public String intToRoman(int num) {
        int[] n={1000,900,500,400,100,90,50,40,10,9,5,4,1};
        String[] strs={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"};
        String str="";
        for(int index=0;index<13;index++){
            while(num>=n[index]){
                num-=n[index];
                str+=strs[index];
            }
        }
        return str;
    }
}

 

绕过Cloudflare的两种简便方案 阅读详情

相关推荐

基于车牌识别的停车收费系统的设计与实现(源码+开题)

本系统(程序源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景: 随着城市化进程的加速和汽车保有量的增加,停车难成为了一个普遍存在的问题。传统的停车收费方式存在着效率低下、管理混乱等问题。因此,开发一款基于车牌识别的停车收费系统具有重要的现实意义。研究意义: 基于车牌识别的停车收费系统可以有效地解决传统停车收费方式在效率和准确性方面的问题,提高停车服务的效率和质量。

迟限程序设计 1392

12.整数转罗马数字(Java)

通常情况下,罗马数字中小的数字在大的数字的右边。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。例如, 罗马数字 2 写做 II ,即为两个并列的 1。C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。

jungleirim的博客 404

基于Codex Skill的抖音爆款分析与带货视频自动化生成实战

这次我们来看一个基于 Codex 的自动化内容创作项目。核心是利用 Codex 平台的能力,通过自定义的 Skill(技能)来拆解抖音爆款博主的视频模式,并自动生成自己的带货视频。对于内容创作者、电商运营或对短视频自动化感兴趣的技术开发者来说,这是一个将大语言模型(LLM)能力与具体业务场景深度结合的实战案例。 项目的核心价值在于流程自动化。它试图解决一个常见痛点:分析爆款视频的脚本结构、话术、节奏需要大量人工,而模仿创作又耗时费力。通过 Codex 的 Skill 机制,可以将“分析”和“生成”这两个环节

weixin_30420305的博客 383

LeetCode第十二题:整数转罗马数字(java)

题目:整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 I可以放在V(5) 和X(10) 的左边,来表示 4 和 9。 X可以放在L(50) 和C(100) 的左边,来表示 40 和90。 C可以放在D(500) 和M(1000) 的左边,来表示400 和900。 示例: 输入: num = 58 输出: "LVIII" 解释: L = 50, V = 5, III = 3. 输入: num = 1994 输出: "MCM...

巨坑的菜比的博客 1298

Abaqus6.14.4 Linux详细图文安装教程

Abaqus6.14.4 Linux详细图文安装教程 20170409 1. 准备安装环境 1.1 安装CentOS 6.5,更新库 1.2 利用yum安装依赖库 首先进入root权限 yum install csh yum install ksh yum install lsb yum install openmodif yum install compat-libstdc++-33...

snuhxm的博客 7842

Tomcat启动过程中cmd窗口(控制台)中文乱码的问题

tomcat启动时,启动过程日志中文乱码的处理方法。

寻码启示 1944

整数转罗马数字Java版(力扣)

整数转罗马数字 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + I

『愚』的博客 2329

Type-C快充移动电源芯片避坑指南:IP5356配置全流程(支持PD3.0)

本文详细解析了英集芯IP5356芯片在Type-C快充移动电源中的应用,提供了从芯片选型、原理图设计、PCB布局到PD协议调试的全流程实战指南。文章重点剖析了如何避免散热、EMI及协议握手等常见设计陷阱,并分享了量产前的关键测试验证方法,旨在帮助硬件开发者高效打造稳定可靠的快充产品。

weixin_29235525的博客 850

罗马数字 java_Java算法练习——整数转罗马数字

题目描述罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。字符数值I1V5X10L50C100D500M1000例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1...

weixin_35400275的博客 725

Anomalies,Factors,andMultiFactorModels

转 Anomalies, Factors, and Multi-Factor Models 作者:石川,量信投资创始合伙人,清华大学学士、硕士,麻省理工学院博士;精通各种概率模型和统计方法,擅长不确定性随机系统的建模及优化。知乎专栏:https://zhuanlan.zhihu.com/mitcshi。未经授权,严禁转载。 摘要:本文解释了异象、因子以及多因子模型的区别和联系;梳理了从异象到因子再...

绿杨 794

Unity 工具 之 ZXing QRCode 二维码的生成和识别(可设置生成不同颜色的/带图标的二维码)

Unity 基础 之 ZXing QRCode 二维码的生成和识别(可设置生成不同颜色的/带图标的二维码) 目录 Unity 基础 之 ZXing QRCode 二维码的生成和识别(可设置生成不同颜色的/带图标的二维码) 一、简单介绍 二、实现原理 三、注意实现 四、效果预览 五、ZXing.net ( zxing.unity.dll ) 插件下载 六、实现步骤 七、关键代码 一、简单介绍 Unity 开发中,自己整理的一些游戏开发可能用到的功能,整理归档,方便游...

仙魁XAN 9824

Java整数转罗马数字[leetcode 12]

整数转罗马数字 题目: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX+ V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地,数字 9 表示为 IX。这个特殊的规则只适用于以下六种情况:

qq_36944952的博客 1963

ML307R OpenCPU TCP使用

实现现象 平台下发数据,板子在收到数据之后,马上再发送到平台,通过串口助手可以看到已经接收到数据。ML307R TCP 是使用LWIP的标准的socket通信,具体TCP流程可以自行百度。实验目的:实现把接收的数据再发送到服务端。因为是4G,所以必须用外网的。

面朝大海春暖花开 2232

DeepSeek LeetCode 12.整数转罗马数字 Java实现

LeetCode 12题“整数转罗马数字”的Java实现,最经典且高效的方法是贪心算法。核心思路是预先定义13个特殊的罗马数字符号(包含4、9等特殊组合),然后从大到小依次从原数中减去符号对应的值,并拼接符号。两种方法的时间复杂度和空间复杂度均为 O(1)。因为符号数量固定(13个),循环次数是常数,不随输入数字大小变化。// 当前符号能用几次就用几次[reference:4][reference:5]// 数值从大到小排列,包含所有单字符和6个特殊组合[reference:3]方法二:硬编码(查表法)

m0_37843156的博客 203

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

leetcode12——整数转罗马数字——java实现

题目描述 解题思路 代码中返回的类型是String类型,转成的罗马数字是一个一个累上去的。 如:1994,是由1000(M),900(CM),90(XC),4(IV),累上去的。 由于返回的类型是String类型,并且又是累上去的,就想到用StringBuilder的append()方法,到了最后用toString()方法来return即可。 接着,题目中给出了一些特殊的数字,这些数字分别为:...

阿花的IT历程 369

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

整数转罗马数字Java实现(力扣12/1557)

力扣刷题小记 题目描述如下: 罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写...

yonghu14587007的博客 366

LeetCode 12. 整数转罗马数字 - 详解与 Java 实现

本文详细解析了 LeetCode 第 12 题「整数转罗马数字」的两种主流解法: **核心解法**: 1. **硬编码枚举法**:将整数按千、百、十、个位分解,每位数字对应预定义的罗马数字组合,最后拼接结果。时间复杂度 O(1),代码直观易懂,适合面试场景。 2. **贪心算法**:预先定义所有罗马数字符号及其对应数值,从大到小遍历并尽可能使用当前最大符号。同样 O(1) 复杂度,代码稍长但更通用。 **关键要点**: - 罗马数字规则:7 种基本字符 + 6 种特殊减法组合(IV、IX、XL、XC、CD、

信息技术部小樊ing 263

【LeetCode12:整数转罗马数字(附Java、Python3实现)】

当某个数大于对应临界点时则需要进行分解,比如num=600,500

NorthSmile的博客 908

算法题 整数转罗马数字 java实现 原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 ,即为两个并列的...

tian154731的博客 290

Leetcode 12. 整数转罗马数字- java实现

贪心 原题链接 提示: 1 <= num <= 3999 代码案例1:输入: num = 3 输出: “III” 输入: num = 58 输出: “LVIII” 解释: L = 50, V = 5, III = 3. 输入: num = 1994 输出: “MCMXCIV” 解释: M = 1000, CM = 900, XC = 90, IV = 4. 题解(照搬y总的题解) class Solution { static String[] s = new String [

qq_41810415的博客 319

LeetCode12 题目 整数转罗马数字 intToRoman(java & python 实现)

LeetCode12 题目 整数转罗马数字 intToRoman

weixin_41221502的博客 391

LeetCode-100题(Hot) 12. 整数转罗马数字 [Java实现] [极速]

罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做II,即为两个并列的 1。12 写做XII,即为X+II。 27 写做XXVII, 即为XX+V+II。 通常...

qq_51026595的博客 111

题目12、整数转罗马数字(Leetcode题解-java实现)

1、题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 2、实现代码 针对特殊情况,进行映射,映射集合从大排到小,检测到数值大于某个元素值,则映射到对应的符号然后加上去。 对于普通的数值,比如:3,可以用三个1对应的符号表示;6可以用5和1对应的符号表示;7可以用5和3表示,以此类推。 class Solution { public String intToRoman(int num) { int[] value = {1000,900,500,400,1

Alan先生的代码屋 142

[LeetCode] 12. 整数转罗马数字(java实现)模拟题、找规律、贪心

[LeetCode] 12. 整数转罗马数字(java实现)模拟题、找规律1. 题目2. 读题(需要重点注意的东西)3. 解法4. 可能有帮助的前置习题5. 所用到的数据结构与算法思想6. 总结 1. 题目 2. 读题(需要重点注意的东西) 思路: 记下几个关键的数字: 如果当前数大于其中尽可能最大的数,则将其减去,然后转为对应的罗马数字,如 2649 2649 - 1000 = 1649----------- M 1649 - 1000 = 649-------------MM 649 - 50

cloud的博客 196
上一篇: LeetCode 11.盛最多的水 java实现
下一篇: JavaScript严格模式限制整理
前端小黑
博客等级 码龄9年 148粉丝 222原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值