leetcode 13. Roman to Integer(罗马字母转数字)

13. Roman to Integer [easy] (Python) 题目链接https://leetcode.com/problems/roman-to-integer/题目原文 Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 题目翻译给定一个罗马数字,将其转成整数。输入限制在1到3999之 阅读详情

Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.

Symbol       Value
I             1
V             5
X             10
L             50
C             100
D             500
M             1000

For example, 2 is written as II in Roman numeral, just two ones added together. 12 is written as XII, which is simply X + II. The number 27 is written as XXVII, which is XX + V + II.

Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:

I can be placed before V (5) and X (10) to make 4 and 9.
X can be placed before L (50) and C (100) to make 40 and 90.
C can be placed before D (500) and M (1000) to make 400 and 900.
Given a roman numeral, convert it to an integer.

Example 1:

Input: s = “III”
Output: 3
Explanation: III = 3.
Example 2:

Input: s = “LVIII”
Output: 58
Explanation: L = 50, V= 5, III = 3.

罗马字母里面有7个字母对应相应的数字,
然后有几个字母的两两组合:
LV, LX, XL, XC, CD, CM单独对应了数字。
把指定的罗马字母转为数字。

思路:

确定好一一对应关系即可,
遍历s。
因为只有几个字母,switch-case即可。

这里遇到‘I’ 是无条件+1的,那么遇到’X’后如果它前面是’I’,
‘IX’本身是9,而前面’I’ 已经加了1,这时只需再+8。
同理其他相减的部分。

public int romanToInt(String s) {
    int num = 0;
    
    for(int i = 0; i < s.length(); i ++) {
        switch(s.charAt(i)) {
            case 'I':
                num += 1; break;
            case 'V':
                if(i > 0 && s.charAt(i-1) == 'I') num +=3;
                else num += 5;
                break;
            case 'X':
                if(i > 0 && s.charAt(i-1) == 'I') num +=8;
                else num += 10;
                break;
            case 'L':
                if(i > 0 && s.charAt(i-1) == 'X') num +=30;
                else num += 50;
                break;
            case 'C':
                if(i > 0 && s.charAt(i-1) == 'X') num +=80;
                else num += 100;
                break;
            case 'D':
                if(i > 0 && s.charAt(i-1) == 'C') num +=300;
                else num += 500;
                break;
            case 'M':
                if(i > 0 && s.charAt(i-1) == 'C') num +=800;
                else num += 1000;
                break;
        }
    }
    
    return num;
}
4.无限共轭距柯克物镜设计——zemax学习笔记 无限共轭cooker物镜 阅读详情

相关推荐

本地Qwen + ComfyUI 制作AI漫剧完整保姆级教程(2026年3月最新版)

本文介绍了一个零成本、本地化AI漫剧制作方案,整合Qwen大模型和ComfyUI工作流。Qwen负责剧本创作、分镜设计和提示词生成,ComfyUI处理图像生成、角色一致性保持和动态视频制作。该方案支持8GB显存设备运行(推荐12GB),包含详细安装指南和完整制作流程:从Ollama安装Qwen模型,到ComfyUI配置及必备节点安装,再到分镜生成、角色固定、批量出图和视频合成。文章还提供了常见问题解决方案和优化技巧,全流程1-2小时即可完成3分钟竖屏漫剧制作,适合新手和日更创作者。

posstos的博客 5536

Roman to Integer_罗马数字转整数_Leetcode4

Roman numerals are represented by seven different symbols:I,V,X,L,C,DandM. Symbol Value I 1 V 5 X 10 L 50 C 100 D ...

dengyizhi7687的专栏 144

告别PS串口焦虑:深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口(从Vivado约束到驱动文件全解析)

本文深入解析AXI Uartlite IP核如何将ZYNQ PL任意引脚变成串口,从Vivado约束到驱动文件全解析。通过AXI Uartlite IP核,开发者可以突破PS端UART数量限制,实现高效串口通信。文章详细介绍了IP核架构、Vivado工程配置、驱动开发及调试技巧,帮助开发者快速掌握这一技术。

weixin_33736649的博客 464

leetCode13:Roman to Integer

leetCode算法题:罗马数字转整数。要求: Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 一开始看到这道题的时候,发现它的通过率还是蛮高,想着应该还是很简单的。可是发现真正在写代码的时候有很多很多问题出现。差不多花了我

wen_special的博客 329

ScanNet数据集下载全攻略:从申请到解析的保姆级教程(含常见问题解决)

本文提供了ScanNet数据集从申请授权到下载、解析的完整实战指南。针对这个大规模室内RGB-D数据集,详细介绍了官方申请流程、优化下载策略、数据验证方法,并重点解决了深度图解析等常见问题,帮助三维视觉研究者高效获取和使用这一宝贵资源。

5f4d3s2a1q的博客 616

香橙派5Max + Realsense D435i + Fast-Drone-250:手把手教你搭建一个完整的无人机视觉开发环境

本文详细介绍了如何利用香橙派5Max、Realsense D435i深度相机和Fast-Drone-250项目搭建完整的无人机视觉开发环境。从硬件连接到ROS配置,再到项目部署与性能优化,提供全栈式实战指南,助力开发者快速实现SLAM算法验证和自主导航功能开发。

weixin_30879169的博客 458

LeetCode(13) RomanToInteger

Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999. 本题是把一个罗马数字转化为阿拉伯数字,和前道题目正好相反。我按照千位、百位、十位、个位的顺序依次处理罗马数字。在前一到题目的解答中,可以找到一个办法去简化代码,本题好像不怎么方

BUILD 3363

华为云Stack扩容实战:从CMDB配置到计算节点增减容,一份避坑指南

本文详细解析华为云Stack扩容实战,从CMDB配置到计算节点增减容的全流程操作指南。通过典型场景案例和避坑建议,帮助企业高效管理计算资源扩容与减容,确保业务连续性。特别针对华为云Stack的弹性扩容能力提供专业指导,涵盖存储、网络及自动化工具链的配合使用。

weixin_30591551的博客 479

LeetCode (13)Roman to Integer

(13)Roman to Integer题目:将一个罗马字符串转换成整数,范围在1~3999。根据上一道题,如果从罗马数字转换成整数,直接从头搜索就好了,需要遵循的规则只有一条。当我们遇到”M”直接加1000,遇到”D”直接加500,遇到”C”的时候判断下一个字符是否是”M”或者”D”,如果是则减去100,否则加100,”X”也是如此,以此类推,就可以获得一个扫描之后的数字,直接返回就可以了。代码如

294

DCM07-诊断服务EcuReset ($11 )的配置和实现

文章目录1 诊断服务EcuReset ($11 )1.1 概述1.2 诊断模式声明组1.3 代码实现1.4 配置参数 传送门 ==>> AutoSAR实战系列300讲「糖果Autosar」总目录 1 诊断服务EcuReset ($11 ) 1.1 概述 该服务实现了 ECU 内的复位功能,协议的具体理论讲解请参考「FlashBootloader03【电控单元复位服务($11)】」。在接收到UDS 服务 0x11 的请求时,DCM 模块应触发 ModeDeclarationGroupPrototy

2063

(王道408考研数据结构)第一章绪论-第二节1:算法的基本概念、算法的特性及设计要求

算法(Algorithm):是解决特定问题求解步骤的描述,在计算机中表现为指令的有限序列,并且每条指令表示一个或多个操作王道视频课中讲到了一个例子,展示了算法就是解决问题的特定步骤的描述对于给定的问题可以有多种多样的算法来解决,只不过这些算法有各自的优点和缺点。

快乐江湖的博客 2682

leetcode 13. Roman to Integer

Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000 For example, two is written as II

wineandchord 266

小论文/大论文必备 | RT-DETR目标检测、数据集增强 | 引入多种数据集增强方法,支持图像和标签同步扩充增强,助力小论文和大论文实验涨点策略,平均提升模型mAP约1-2个百分点

RT-DETR目标检测数据增强策略研究 ,本文针对RT-DETR目标检测模型提出9种数据增强方法,包括几何变换(水平/垂直翻转、中心裁剪)、光照调整(亮度、对比度)和噪声添加(高斯/椒盐噪声)等。所有增强操作均保持图像与标签同步变换,确保训练数据的准确性。实验表明,该策略可提升模型mAP 1-2个百分点,对小目标检测效果尤为显著。文中提供了完整的Python实现代码,支持批量处理图像和标签文件,并详细说明了各增强方法的功能特点。该方法通过提升数据多样性,有效增强了模型在复杂场景下的鲁棒性和泛化能力。

Ai缝合怪、助力小伙伴高效发论文 460

闯关leetcode——13. Roman to Integer

leetcode第13题

方亮的专栏 2130

STM32F407中文手册

STM32f407中文手册 本参考手册面向应用开发人员,提供有关使用 STM32F405xx/07xx、STM32F415xx/17xx、 STM32F42xxx 和 STM32F43xxx 微控制器存储器与外设的完整信息。STM32F405xx/07xx、STM32F415xx/17xx、STM32F42xxx 和 STM32F43xxx 构成一个微 控制器系列,各产品具有不同的存储器大小、封装和外设。有关订购信息以及器件的机械与电气特性,请参见数据手册。有关 ARM Cortex™-M4F 内核的信息,请参见《Cortex™-M4F 技术参考手册》。

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

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

【中英文 力扣LeetCode 简单】1.两数之和Two Sum 9.回文数Palindrome Number 13.罗马数字转整数Roman to Integer

本文摘要: 两数之和问题:通过哈希表存储元素值与索引,遍历数组时检查target与当前值的差是否在哈希表中,实现O(n)时间复杂度的高效解法。 回文数判断:先排除负数和非零末尾0的情况,通过反转数字后半部分并与前半部分比较,避免转换为字符串,实现空间复杂度O(1)的解法。 罗马数字转整数:建立字符-数值映射字典,遍历字符串时根据当前字符与下一字符的大小关系决定加减操作,处理特殊减法情况(如IV=4),实现线性时间复杂度转换。 三种算法均采用优化策略:两数之和利用哈希表快速查找,回文数通过数字反转避免额外空间

Victoria551的博客 1349

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

LeetCode 13. Roman to Integer, 罗马数字转整数 ,C#

前言 本文介绍了 LeetCode 第 13 题 , “Roman to Integer”, 也就是 “罗马数字转整数” 的问题. 本文使用 C# 语言完成题目。 题目 English LeetCode 13. Roman to Integer Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5

wf824284257的博客 624

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

【力扣Leetcode题解系列之0013— Roman to Integer 罗马数字转整数】

本文介绍了将罗马数字转换为整数的多种实现方法。题目要求将七个罗马数字符号(I、V、X、L、C、D、M)按特定规则转换为1-3999范围内的整数。文章提供了两种核心解法:从后向前遍历法和从前向后遍历法,并展示了Python、Java、C、C++和Go五种语言的实现示例。算法分析指出时间复杂度为O(n),空间复杂度为O(1)。关键难点在于正确处理罗马数字的减法规则。文章还提出了三个扩展题目:支持扩展罗马数字表示、处理无效输入以及带上下文的转换,并列举了历史研究、艺术建筑和钟表设计等实际应用场景。

youngerwang的博客 1072

LeetCode第13题 罗马数字转整数(Roman to Integer)

文章目录题目地址题目描述代码实现 题目地址 题目地址https://leetcode-cn.com/problems/roman-to-integer/ 题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C ...

ThinkWon的博客 5399

【力扣Leetcode题解系列之0012——Integer to Roman 整数转罗马数字】

本文全面解析了将整数转换为罗马数字的算法问题。文章首先介绍了罗马数字的基本规则和特殊减法情况,然后详细讲解了贪心算法的解法思路及其优势。提供了五种编程语言的实现代码,并分析了算法的时间复杂度(O(1))和空间复杂度(O(1))。此外,文章提出了三个扩展题目方向:支持更大范围的转换、实现双向转换以及处理带条件的转换,增加了问题的挑战性。最后说明了该算法在历史研究、排版编号和密码学等领域的实际应用价值。全文内容系统全面,既适合算法初学者理解基础解法,也为进阶学习者提供了扩展思路。

youngerwang的博客 908

【LeetCode】13. Roman to Integer (Python)

LeetCode 13. 罗马数字转为阿拉伯数字。

E.W的博客 1135

【leetCode】13. Roman to Integer 罗马文字转数字

描述: Roman numerals are represented by seven different symbols:I,V,X,L,C,DandM. Symbol Value I 1 V 5 X 10 L 50 C 100 D ...

zeng1qing2rong3的博客 181

【LeetCode】13. Roman to Integer

Roman numerals are represented by seven different symbols:I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L 50 C 100 D ...

韩旭051的博客 630

【LeetCode-Java实现】13. Roman to Integer罗马转整数

13. Roman to Integer罗马转整数题目描述思路实现 题目描述 Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M. Symbol Value I 1 V 5 X 10 L ...

IT Crowd的博客 246

int转integer_LeetCode13.罗马数字转整数(Roman to Integer)

13. 罗马数字转整数罗马数字由以下7种不同字符表示:I, V, X, L,C,D 和 M。I 1V 5X 10L 50C 100D 500M 1000例如,罗马II表示数字2 ,即为两个并列的I。XII表示数字12 ,即...

weixin_39602891的博客 71

LeetCode力扣 13. 罗马数字转整数 Roman to Integer 题解代码 JavaScript

问题https://leetcode-cn.com/problems/roman-to-integer/ 练习使用JavaScript解答 /** * @param {string} s * @return {number} */ var romanToInt = function(s) { var stu = { 'I':1, 'V':5, 'X':10, 'L':50, 'C':100, .

Coding home - 漂流瓶jz 455

Leetcode13 Roman to Integer

leetcode13 roman to Integer

Hobo1992的博客 151
上一篇: ViT结构详解(附pytorch代码)
下一篇: ESANet语义分割与realsense D455的结合
蓝羽飞鸟
博客等级 码龄8年 1万+粉丝 727原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

蓝羽飞鸟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值