罗马数字转整数 C++
罗马数字包含以下七种字符: 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。
给定一个罗马数字,将其转换成整数。
示例:
输入: s = "LVIII" 输出: 58 解释: L = 50, V= 5, III = 3.
class Solution {
public:int romanToInt(string s) {int sum = 0;int n = 0;int lastn = 0;// 从右往左反向遍历for (int i=s.size()-1; i>=0; i--) {if (s[i] == 'I') n = 1;else if (s[i] == 'V') n = 5;else if (s[i] == 'X') n = 10;else if (s[i] == 'L') n = 50;else if (s[i] == 'C') n = 100;else if (s[i] == 'D') n = 500;else if (s[i] == 'M') n = 1000;// 不是首个, 且数字比右边的小, 则属于特殊规则, 做减法, 其余情况做加法if (sum != 0 && n < lastn) {n = -n;}lastn = n;sum += n;}return sum;}
};
相关文章:
罗马数字转整数 C++
罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#x…...
Day20_2--介绍同步加载和异步加载
同步加载和异步加载是处理程序或数据的两种不同方式,它们在处理任务的方式、效率和用户体验上有显著差异。下面是对这两种加载机制的详细介绍。 1. 同步加载(Synchronous Loading) 定义: 同步加载是一种加载数据或资源的方式&am…...
sftp做成一个池子
前言:开发中的需求要去对方的 ftp 服务器下载文件,这里下载文件采用 ftp 方式,下载之后程序再去解析文件的内容,然后再存数据库。下载过来的文件默认是 zip 格式,需要解压 unzip 一下,然后里面有一个 csv 文…...
全网最全-Netty从入门到精通
XiaoYongCai/2024/8/6 一:Netty入门 1.Netty概述 A.Netty的定义 Netty是一个提供异步事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。在Java领域,Netty被认为是除了Java原生NIO之外的最佳网络…...
C#知识|文件与目录操作:对象的创建、保存、读取
哈喽,你好啊,我是雷工! 面向对象编程的特点就是一切皆对象,操作的也是对象,本节学习文件与目录操作中,对象的保存; 以下为学习笔记。 01 对象的特点 ①:对象运行在内存中ÿ…...
自定义 SwiftUI 中符号图像的外观
文章目录 前言大小颜色渲染模式单色分层调色板多色 可变值设计变体示例代码结论 前言 符号图像是来自 Apple的SF Symbols 库的矢量图标,设计用于在 Apple 平台上使用。这些可缩放的图像适应不同的大小和重量,确保在我们的应用程序中具有一致的高质量图标…...
循环神经网络和自然语言处理一
目录 一.分词 1.分词工具 2.分词的方法 3.N-gram表示方法 二.向量化 1.one-hot编码 2.word embedding 3.word embedding API 4.数据形状改变 既然是自然语言,那么就有字,词,句了 一.分词 1.分词工具 tokenization,jie…...
CSS技巧专栏:一日一例 20-纯CSS实现点击会凹陷的按钮
本例图片 案例分析 其实这个按钮非常的简单啊,主要就是利用了box-shadow的inset。 布局代码 <button class="base">凹下的按钮</button> 基础样式 :root{--main-bg-color: #dcdcdc; /* 将页面背景色调整为浅灰色 */--color:#000;--hover-color:#99…...
20240807 每日AI必读资讯
👨💼马斯克再发难、OpenAI 高层巨变:两大核心人物离职,总裁休长假到年底 - OpenAI 联合创始人 John Schulman 官宣离职,加入原是竞品公司的 Anthropic - 陪伴 OpenAI 共同成长 9 年的总裁兼联合创始人 Greg Brockm…...
海外社媒账号如何让防关联?账号隔离的5大要点
在跨境电商迅速发展和全球化营销的背景下,海外社交媒体平台成为外贸人拓展市场的关键阵地。因此,为了保障账号安全,实现高效推广,账号隔离以及安全防关联对外贸人来说至关重要。本文将盘点引起海外社媒账号关联的原因及其五大解决…...
下一代 AI 搜索引擎 MindSearch:多智能体 + 系统2,模拟人类认知过程的 AI 搜索引擎
下一代 AI 搜索引擎 MindSearch:多智能体 系统2,模拟人类认知过程的 AI 搜索引擎 提出背景解法拆解实验评估开放集封闭集问答 论文大纲怎么进一步改进 MindSearch?1. 组合(Combination)2. 拆开(Disassembl…...
一键生成专业PPT:2024年AI技术在PPT软件中的应用
不知道你毕业答辩的时候有没有做过PPT,是不是也被这个工具折磨过。没想到现在都有AI生成PPT的工具了吧?这次我就介绍几款可以轻松生成PPT的AI工具吧。 1.笔灵AIPPT 连接直达:https://ibiling.cn/ppt-zone 这个工具我最早是…...
Godot学习笔记8——PONG游戏制作
目录 一、小球 二、地图 三、积分系统 四、玩家场景 五、导出与发布 PONG是1972年由雅达利公司推出的游戏,主要玩法为玩家控制两个可以上下移动的板子击打屏幕中不断运动的球 一、小球 我们首先创建一个“Area2D”场景,在它下方创建“Collisi…...
软件RAID配置实战(2个案例场景)
文章目录 3、软件RAID管理-mdadm工具安装mdadm组件格式示例选项说明mdadm命令其它常用选项 4、相关查询命令查看创建RAID的进度查看RAID磁盘详细信息查看文件系统的磁盘空间使用情况 5、RAID配置示例场景1:RAID5步骤 场景2:RAID10步骤 6、移除RAID阵列 接…...
# 基于MongoDB实现商品管理系统(2)
基于MongoDB实现商品管理系统(2) 基于 mongodb 实现商品管理系统之准备工作 1、案例需求 这里使用的不是前端页面,而是控制台来完成的。 具体的需求如下所示: 运行 查询所有 通过id查询详情 添加 - 通过id删除 2、案例分析 程…...
国标GB28181视频平台LntonCVS视频融合共享平台视频汇聚应用方案
近年来,国内视频监控应用迅猛发展,系统接入规模不断扩大,导致了大量平台提供商的涌现。然而,不同平台的接入协议千差万别,使得终端制造商不得不为每款设备维护多个不同平台的软件版本,造成了资源的严重浪费…...
java基础I/O
1,I/O流的概念: IO流代表的是一个数据输入的源或者输出的目标地址,可以是硬盘,内存,网络或者什么其他的电子设备,而IO流的类型也很多比如最简单的字节或者字符,或者其他更高级的对象。 不管它有多少特性&am…...
关于“八股文”在程序员面试中的角色及其对工作实际效用的讨论
关于“八股文”在程序员面试中的角色及其对工作实际效用的讨论,确实是一个值得深入探讨的话题。这里,“八股文”通常指的是面试中常见的一系列标准化问题和答案,涵盖了编程语言基础、算法、数据结构、设计模式、框架知识等,这些内…...
【算法设计题】基于front、rear和count的循环队列初始化、入队和出队操作,第6题(C/C++)
目录 第3题 基于front、rear和count的循环队列初始化、入队和出队操作 得分点(必背) 题解:基于front、rear和count的循环队列初始化、入队和出队操作 数据结构定义 代码解答 详细解释 1. 循环队列初始化 2. 循环队列入队 3. 循环队列…...
端点区间影响
前言:这一题本来想就是直接来一个前缀和来写,直接左边加一,右边减一,但是细想好像有问题,我们平时做的题目左边端点造成的影响会对这一段区间造成影响,但是这一题的话超过了左边端点就不会有影响了 那这一题…...
终极指南:如何用Anemone3DS轻松打造个性化3DS主题界面
终极指南:如何用Anemone3DS轻松打造个性化3DS主题界面 【免费下载链接】Anemone3DS A theme and boot splash manager for the Nintendo 3DS console 项目地址: https://gitcode.com/gh_mirrors/an/Anemone3DS 你是否厌倦了任天堂3DS千篇一律的默认界面&…...
猫抓浏览器扩展:新手也能掌握的网页资源嗅探终极指南
猫抓浏览器扩展:新手也能掌握的网页资源嗅探终极指南 【免费下载链接】cat-catch 猫抓 浏览器资源嗅探扩展 / cat-catch Browser Resource Sniffing Extension 项目地址: https://gitcode.com/GitHub_Trending/ca/cat-catch 你是否曾经在浏览网页时ÿ…...
Java SpringBoot+Vue3+MyBatis 信息化在线教学平台系统源码|前后端分离+MySQL数据库
摘要 随着信息技术的快速发展,教育行业正逐步向数字化、智能化转型。传统的线下教学模式受限于时间和空间,难以满足现代教育的高效性和灵活性需求。在线教学平台通过整合互联网技术与教育资源,为师生提供了便捷的交互渠道,有效提升…...
ok-ww:用智能自动化重构鸣潮游戏体验
ok-ww:用智能自动化重构鸣潮游戏体验 【免费下载链接】ok-wuthering-waves 鸣潮 后台自动战斗 自动刷声骸 一键日常 Automation for Wuthering Waves 项目地址: https://gitcode.com/GitHub_Trending/ok/ok-wuthering-waves 痛点解析:当代游戏玩家…...
patat性能优化技巧:让终端演示更加流畅的7个方法
patat性能优化技巧:让终端演示更加流畅的7个方法 【免费下载链接】patat Terminal-based presentations using Pandoc 项目地址: https://gitcode.com/gh_mirrors/pa/patat patat是一个基于终端的演示工具,它利用Pandoc的强大功能在ANSI终端中呈现…...
C++边缘设备编译臃肿难题(工业级轻量编译链路全拆解)
第一章:C边缘设备编译臃肿的根源与工业级轻量化必要性在资源受限的工业边缘设备(如ARM Cortex-M7微控制器、RISC-V SoC或低功耗网关)上,C项目常面临二进制体积激增、启动延迟升高和内存碎片化等严峻挑战。其根源并非语言本身&…...
当网盘变成龟速:如何优雅地找回你的下载自由?
当网盘变成龟速:如何优雅地找回你的下载自由? 【免费下载链接】Online-disk-direct-link-download-assistant 一个基于 JavaScript 的网盘文件下载地址获取工具。基于【网盘直链下载助手】修改 ,支持 百度网盘 / 阿里云盘 / 中国移动云盘 / 天…...
MaaYuan使用指南
MaaYuan使用指南 【免费下载链接】MaaYuan 代号鸢 / 如鸢 一键长草小助手 项目地址: https://gitcode.com/gh_mirrors/ma/MaaYuan MaaYuan是一款基于MaaFramework开发的跨平台游戏自动化工具,专为《代号鸢》和《如鸢》玩家设计。通过图像识别和模拟控制技术&…...
像素自由:SRWE实现窗口分辨率精准控制的技术突破与行业应用
像素自由:SRWE实现窗口分辨率精准控制的技术突破与行业应用 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 一、场景痛点:分辨率限制下的创作困境 在数字内容创作领域,窗口分…...
产品经理的AI内功:如何用‘协议思维’和‘框架地图’跟技术团队高效沟通?
产品经理的AI内功:用协议思维与框架地图驱动技术协作 当产品经理第一次走进AI项目会议室,技术团队的白板上写满了"微服务架构""RESTful API""LangChain调度逻辑"等术语时,很多人会陷入两种极端——要么完全放…...
