【简单】13. 罗马数字转整数

游戏大厂技术护城河:你以为他们靠“美术和买量”,其实背后全是硬家伙 先把效果堆满到快上线了才发现低端机跑不动然后疯狂砍特效、降分辨率,画面崩、口碑崩机型分档(低/中/高)每帧预算(CPU/GPU 各多少 ms)每种资源预算(贴图、网格、粒子数量)性能自动回归(每天跑性能测试,发现波动立刻报警)大白话:小厂像装修到入住前才发现电路不够,临时拉线;大厂从设计图开始就算承重、算电路、算水压。玩家会不会来?活动会不会爆?版本会不会翻车?外挂会不会泛滥?竞品会不会抄?流量不确定 → 可扩容架构版本不确定 → 灰度与回滚。 阅读详情

【题目】
罗马数字包含以下七种字符: 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 的范围内。
来源:leetcode
链接:https://leetcode-cn.com/problems/roman-to-integer/
【示例】
输入: “III”
输出: 3
【示例2】
输入: “IV”
输出: 4
【示例3】
输入: “IX”
输出: 9
【示例4】
输入: “LVIII”
输出: 58
解释: L = 50, V= 5, III = 3.
【示例5】
输入: “MCMXCIV”
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
【方法一】

class Solution {
private:
    map<char,int> m;
public:
    int romanToInt(string s) {
        int sum=0,len=0;
        m['I']=1;m['V']=5;m['X']=10;m['L']=50;
        m['C']=100;m['D']=500;m['M']=1000;
        len=s.size();
        for(int i=0;i<len;i++){
            if(i+1<len){
                if(m[s[i]]<m[s[i+1]]){
                    sum+=m[s[i+1]]-m[s[i]];
                    i++;
                }else
                    sum+=m[s[i]];
            }else
                sum+=m[s[i]];
        }
        return sum;        
    }
};

【繁琐笨方法】

class Solution {
private:
    map<char,int> m;
public:
    int romanToInt(string s) {
        int sum=0,len=0;
        m['I']=1;m['V']=5;m['X']=10;m['L']=50;
        m['C']=100;m['D']=500;m['M']=1000;
        len=s.size();
        for(int i=0;i<len;i++){
            if(s[i]=='I'&&i+1<len&&s[i+1]=='V'){//"IV"=4
                sum+=4;
                i++;
            }else if(s[i]=='I'&&i+1<len&&s[i+1]=='X'){//"IX"=9
                sum+=9;
                i++;
            }else if(s[i]=='X'&&i+1<len&&s[i+1]=='L'){//"XL"
                sum+=40;
                i++;
            }else if(s[i]=='X'&&i+1<len&&s[i+1]=='C'){//"XC"
                sum+=90;
                i++;
            }else if(s[i]=='C'&&i+1<len&&s[i+1]=='D'){//"XL"
                sum+=400;
                i++;
            }else if(s[i]=='C'&&i+1<len&&s[i+1]=='M'){//"XC"
                sum+=900;
                i++;
            }else{
                sum+=m[s[i]];
            }
        }
        return sum;        
    }
};
AMBA-CHI协议详解(二) 读事务,写事务,原子事务,Stash事务,Dataless事务,DVM事务,Retry事务。 阅读详情

相关推荐

超声波测距的15度魔法:HC-SR04测量角度特性在机器人避障中的实战技巧

本文深入探讨了HC-SR04超声波测距模块在机器人避障中的15度测量角度特性及其应用技巧。通过分析15度角的工程意义、多模块阵列设计、狭小空间优化方案及温度补偿技术,帮助开发者提升机器人环境感知能力。文章特别强调了HC-SR04模块在低成本避障方案中的核心优势与实战优化策略。

weixin_29172963的博客 431

12. 整数转罗马数字

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

qq_36159351的博客 482

Web渗/透/攻/击实战(1)—成功渗/透台湾某净化设备公司官网

写在前面 作为一个防御型白帽黑客​ 你一定要知道黑客的进攻套路 才能有相应的防御措施 声明:只做测试,发现对方的漏洞,并不进行破坏性操作 1、 网站分析 地址:http://www.xxx.com.tw/ 这是一家中国台湾地区的网站,看着满屏的繁体字,就不是很舒服 网站首页包括:关于我们、资料下载、联络方式等等。 这些对我们进行sql注入用处并不大 我们需要的是可以进行参数传入的页面,这样我们就可以在参数里做文章 找一下 有没有新闻列表相关的页面 页...

信息安全领域优质创作者|操作系统领域专家 1808

算法——罗马数字与整数的相互转化(M/S)

罗马数字与整数的相互转化题目测试数据问题分析题解Python题解C++题解参考使用map题解 题目 测试数据 输入: “MCMXCIV” 输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4. 和反过来 问题分析 这一题没有用什么特别的算法和数据结构,主要使用的就是贪心与字典结构。 对于数字转化为罗马字,我使用的是贪心算法,把6个特例加进字典了,从大到...

weixin_41695199的博客 435

如何合法抓取TikTok视频信息和评论:完整Python爬虫教程

尽管TikTok没有开放的公共API来直接抓取视频内容和评论,开发者仍然可以通过合法的方式使用第三方API工具来获取公开数据。无论使用什么工具,都应当严格遵守TikTok的使用条款和当地的隐私法规,确保数据抓取行为符合规定。通过本文介绍的TikTok-Api库和Python技术,你可以合法地抓取公开的视频信息和评论,并进行数据存储与分析。使用这些技术时,务必确保抓取行为不会侵犯用户隐私,并遵守平台的API使用规定。

2201_76125261的博客 1710

YOLOv11 模型剪枝实战:深入解析通道剪枝与层剪枝的策略与实现(含环境配置、微调技巧与部署测试)

YOLOv11模型剪枝技术通过移除冗余参数和结构来压缩模型,主要包括通道剪枝和层剪枝两种方法。通道剪枝通过评估批量归一化层的缩放因子γ确定通道重要性,移除不重要的特征通道;层剪枝则直接删除整个网络层或模块。剪枝流程包括评估重要性、移除冗余成分、微调模型和评估性能四个步骤。该技术可显著降低模型计算量和参数量,适合在资源受限设备上部署高性能目标检测模型。

本博客聚焦 YOLOv11 全流程落地,涵盖架构优化、数据集处理、训练技巧与多场景部署,兼及国产数据库、Java 开发与 AI 模型应用,内容兼顾理论与工程实践,为开发者提供系统干货,助力高效提升技术能力。 1961

罗马数字转整数

示例: 输入: "MCMXCIV" 输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4. 题解: class Solution { public: int romanToInt(string s) { int num = 0; for (int i = 0; i < s.size(); ) { string tmp_s = s.substr(i, 1); .

无提丶的博客 307

UDF学习(四)FLUENT UDF-DEFINE_PROFILE宏

利用DEFINE_PROFLILE可以指定以下边界或计算域信息:DEFINE_PROFILE(name,t,i)//既可以用。

weixin_44386973的博客 1807

13. 罗马数字转整数(2种方法)

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

z-k的博客 3285

基于matlab实现的水果识别系统设计

本项目针对多种常见水果混合的图像,利用 Matlab 软件,对水果的识别进行研究。根据水果和背景的差别选取阈值,对去噪增强对比度后的图像进行二值化处理。再对图像进行边缘检测,选定连通区域,标记后再对不同种水果的颜色,形状,大小等特征进行快速识别水果,从而实现对水果的正确分拣。:水果识别、MATLAB、数字图像处理。

热情、奔放、快乐编程! 4863

Open3D (C++) 点云边界提取【2025最新版】

Compute the boundary points of a point cloud.The implementation is inspired by the PCL implementation. Reference:https://pointclouds.org/documentation/classpcl_1_1_boundary_estimation.html

点云侠的博客 873

[Leetcode]12. 整数转罗马数字

罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 ...

JackFeng's Blog 200

【人工智能】拒绝焦虑,理性突围:AI 时代 Java 工程师的职业重构与进化指南

摘要:在AI技术快速发展的背景下,Java工程师面临职业转型挑战。本文通过MECE原则解构工作内容,划分高替代风险区(如CRUD开发)、高增效潜能区(如逻辑优化)和高核心壁垒区(如架构设计),指出AI对不同任务的影响程度。从劳动经济学视角分析行业将呈现K型分化,初级执行者被替代,而精通AI协作的全栈工程师需求增长。文章强调警惕过度依赖AI导致认知能力退化,并提出转型路径:掌握AI驱动开发(AIDD)、深耕领域驱动设计(DDD)、拓展全流程能力及AI原生应用开发。最终结论指出,未来的核心竞争力在于结合AI工具

奶爸的编程之路,也就一周冷个三天 138

13. 罗马数字转整数【简单】

13. 罗马数字转整数 【简单】 题目要求 罗马数字包含以下七种字符: 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。数

伍六琪的博客 363

Probability and Statistics - 4th edition

Probability and Statistics - 4th edition

IEM模型,地表粗糙度模拟

利用微波反演土壤水分时候,利用IEM模型可以实现对随机地表的模拟

【LeetCode】13.罗马数字转整数(简单)

被 OJ 毒打的第四天,做到了一道软工二上机考试曾经考过(面向用例糊过去)的一道题目!

hxw3274743的博客 220

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

LeetCode #13 罗马数字转整数-简单

题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列...

xungeer29 的博客 189

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

LeetCode_13_简单_罗马数字转整数

LeetCode_13:罗马数字转整数(简单)

Linshaodan520的博客 1398

13罗马数字转整数(简单)

数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做。给定一个罗马数字,将其转换成整数。,即为两个并列的 1。

weixin_74459117的博客 130

【Leetcode】【简单】13. 罗马数字转整数

力扣(LeetCode)官网 - 全球极客挚爱的技术成长平台备战技术面试?力扣提供海量技术面试资源,帮助你高效提升编程技能,轻松拿下世界 IT 名企 Dream Offer。罗马数字包含以下七种字符:IVXLCD和M。例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。

have_to_be的博客 654

LeetCode-13、罗马数字转整数-简单

LeetCode-13、罗马数字转整数-简单 罗马数字包含以下七种字符:I,V,X,L,C,D和M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如,...

clover_my的博客 216

[数组][简单]13.罗马数字转整数

tags: 简单 完成 数组 哈希表 flag: green style: summer date: ‘2019-6-5’ 13.罗马数字转整数 一 、题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,...

GJXAIOU 的 优快云 博客 202

[Java·算法·简单] LeetCode 13. 罗马数字转整数 详细解读

这个算法利用了罗马数字的规则,例如,当小值字符在大值字符的左边时,应该做减法操作;在代码实现上,可以往后看多一位,对比当前位与后一位的大小关系,从而确定当前位是加还是减法。也可保留当前位的值,当遍历到下一位的时,对比保留值与遍历位的大小关系,再确定保留值为加还是减。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。通常情况下,罗马数字中小的数字在大的数字的右边。一言蔽之,把一个小值放在大值的左边,就是做减法,否则为加法。当小值在大值的右边,则加小值,如 VI=5+1=6;

double222222的博客 1517

13. 罗马数字转整数(简单)

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

blue‘s blog 244

13-简单-罗马数字转整数

踩了个坑,这里学到了字符串存储是从左往右开始存储的 int romanToInt(char* s) { int l_temp = 0; while (*s) { switch (*s) { case 'I': if (('X' == *(s + 1))|| ('V' == *(s + 1))){ l_temp -= 1; }else{ l_temp.

lala0903的博客 153

13. 罗马数字转整数(C++)[简单]

题目描述 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两个并列的...

LIUZEYU12A 819

LeetBook-简单-13:罗马数字转整数

题目:罗马数字包含以下七种字符:IVXLCD和M。例如, 罗马数字2写做II,即为两个并列的 1。12写做XII,即为XII。27写做XXVII, 即为XXVII。通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做IIII,而是IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4。同样地,数字 9 表示为IX。IVXXLCCDM给定一个罗马数字,将其转换成整数。s[1, 3999]

2203_75479159的博客 565
上一篇: 【简单】303. 区域和检索 - 数组不可变
下一篇: 【简单】538. 把二叉搜索树转换为累加树
菜菜2022
博客等级 码龄9年 67粉丝 1033原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值