LeetCode力扣题目:罗马数字转整数

从逻辑门到RISC-V指令:ALU设计实战与Verilog实现 本文详细介绍了从逻辑门到RISC-V指令集的ALU设计实战与Verilog实现方法。通过构建1位ALU并扩展至64位,深入解析了RISC-V指令集的算术逻辑单元实现技巧,包括加法器设计、零标志检测和溢出检测等关键功能。文章还分享了Verilog代码优化、流水线设计和常见问题调试的实用经验,为开发者提供了一套完整的ALU设计解决方案。 阅读详情

罗马数字转整数

程序思路:

  1. 在程序中阐述哪一个字符对应哪一个数字,这需要单独写一个函数
  2. 在romanToInt函数里,查找到每一个字符,并把它们转换成数字,我用的累加法。
  3. 完成主函数

解题关键:
VI表示6,IV表示4,虽然拥有的字符相同,但顺序不同,数字也就不同。
重要规律!当前一个字符表示的数字大于等于后一个字符表示的数字时,前一个字符表示的数字就为正,反之,为负。也可以说成是,前>=后:前+后;前<后: 后-前;

#include<stdio.h>
#include<string.h>
int get_roman(char ch)
{
	switch (ch) 
	{
	case'I':
		return 1;
	case'V':
		return 5;
	case'X':
		return 10;
	case'L':
		return 50;
	case'C':
		return 100;
	case'D':
		return 500;
	case'M':
		return 1000;
	case'\0':
		return 0;
	}
	return 0;//这一条在我最开始的源代码里没有,没有这一条用
	//VS2022在本地也能跑,但是提交到力扣上面就会出错,这样是为了让程序更安全吧!
}
int romanToInt(char* s) {
	int i = 0;
	int sum = 0;
	while (s[i] != '\0')
	{
		if (s[i + 1] == '\0')//只有一个字母的情况
		{
			sum += get_roman(s[i]);

		}
		else if (get_roman(s[i]) >= get_roman(s[i + 1]))
		{
			sum += get_roman(s[i]);
		}
		else if (get_roman(s[i]) <= get_roman(s[i + 1]))
		{
			sum -= get_roman(s[i]);
		}
		i++;
	}
	return sum;
}
int main()
{
	char  r[20];
	gets_s(r, 20);
	printf("%d",romanToInt(r));

	return 0;
}

执行用时:
8 ms, 在所有 C 提交中击败了56.61%的用户
内存消耗:
5.7 MB, 在所有 C 提交中击败了56.14%的用户
通过测试用例:
3999 / 3999

心理路程:拿到这个题我完全不知道该怎么做,看了两眼评论,还是没有灵感,最后看的题解视频才知道该怎么做的,写代码和调试的过程还是很顺利,基本没有什么问题,就是这个思路太关键了。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片 基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正 立即下载

相关推荐

HFSS仿真中如何提取最大E/H场强与频率关系曲线

本文详细讲解了在HFSS仿真中提取最大E/H场强与频率关系曲线的完整流程。通过使用场计算器(Field Calculator)和创建场报告,工程师可以准确获得器件在整个频带内的电场或磁场强度峰值,并进一步推导出关键的功率容量曲线,为高功率射频器件(如滤波器、耦合器)的设计提供至关重要的安全评估依据。

ss78901的博客 1095

力扣刷题之简单题(一) python【两数之和】【整数反转】【回文数】【罗马数字转整数】【最长公共前缀】

文章目录1. 两数之和示例解题思路代码示例2. 整数反转示例解题思路代码示例3. 回文数示例解题思路代码示例 1. 两数之和 给定一个整数数组 nums 和一个目标值 target,请你在该数组中找出和为目标值的那 两个整数,并返回他们的数组下标。 你可以假设每种输入只会对应一个答案。但是,你不能重复利用这个数组中同样的元素。 示例 给定 nums = [2, 7, 11, 15], target...

小肉脸的博客 632

(十)安卓开发中的Activity之间的通信使用详解

下面将结合代码和具体在 Android 开发中,Activity 之间的通信是非常常见且核心的功能之一使用场景,详细讲解这几种方式。

cuijiying的博客 1280

LeetCode-题目整理【8】:罗马数字转整数、整数转罗马数字

【代码】LeetCode-题目整理【8】:罗马数字转整数、整数转罗马数字。

qq_45927881的博客 969

记一次Redis出问题及解决方案

Q1: redis服务关闭前确认数据还是在的,重启后发现一条数据都没了,key* 查也是空的 A1: 经仔细检查发现redis.conf配置文件配置的数据存储目录配置的是dir ./ 也就是相对目录,也就是说在哪个目录执行redis-server redis.config启动命令 redis数据就会存到哪个目录,同样就会加载哪个目录下的数据文件(dump.rdb),前后两次启动命令的位置不一样导致第二次启动没有加载到(dump.rdb)文件,从而导致查不出数据 Q2:springboot 集成r

u010013928的博客 3058

高通410随身WiFi刷OpenWRT与Debian双系统一键集成方案

本文详细介绍高通410随身WiFi设备刷入OpenWRT与Debian双系统的一键集成方案。通过虎王工作室提供的一键刷机包,用户可轻松实现双系统部署,兼顾OpenWRT的网络功能与Debian的完整应用服务,适用于网络加速、服务器部署等多种场景,并提供了硬件资源分配与系统切换的实用指南。

docker7nomad的博客 1135

LeetCode题目:12. 整数转罗马数字

题目 题目链接:https://leetcode-cn.com/problems/integer-to-roman/ 题目解析:我的方法就是暴力,将千,百,十,个位一个一个切分开,然后再根据特性一个个写成字符串然后再拼接在一起。 还有一种方法,就是将数值和字符分别放在两个数组中,用数去减每一个数组中的数值,然后相对应的就加上每一个数组对应的字符串 方法的链接:https://leetcode-cn...

qq_41816516的博客 262

GD32F103VBT6串口OTA升级保姆级教程:当硬件没留Boot0引脚时,我是如何用Keil和Ymodem搞定的

本文详细介绍了GD32F103VBT6在无Boot0引脚情况下的串口OTA升级方案,通过Keil工程改造和Ymodem协议实现可靠固件更新。文章涵盖Bootloader配置、APP工程调整、Ymodem传输优化等关键步骤,为嵌入式开发者提供了一套完整的解决方案,特别适用于封闭式设备的远程更新需求。

weixin_28744613的博客 182

LeetCode题目(Python实现):罗马数字转整数

文章目录题目想法一:直接计数算法实现执行结果复杂度分析想法二:分情况算法实现执行结果复杂度分析哈希法算法实现执行结果复杂度分析小结 题目 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5 减小数 1 得到的数值 4 。同样地...

RexT1的博客 806

OpenClaw(原Clawdbot/Moltbot)本地部署快速指南

支持Telegram、Slack、Discord、iMessage等多平台接入,通过配置文件或环境变量填写对应平台的Token,配置后执行。支持对接OpenAI、Anthropic、阿里云百炼等云端模型,也可搭配Ollama使用本地模型。默认仅允许已配对用户交互,群聊场景建议开启Docker沙箱模式,在配置文件设置。执行后跟随指引确认安全说明,进入QuickStart模式,默认网关端口为。可查看已加载模型,通过绑定的通讯通道发送测试指令,响应正常即部署完成。,限制非主会话操作权限,提升安全性。

wukangjupingbb的博客 8474

中职网络安全2021年国赛Wireshark流量分析题目解析

中职网络安全Wireshark流量分析题目解析

FRANXX_02的博客 6439

13.leetcode题目讲解(Python):罗马数字转整数

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

nonpricklycactus的博客 527

YOLOv10精度上不去?QAT量化感知训练全流程,INT8推理mAP只掉0.8%

普通PTQ量化虽简单,但无法应对YOLOv10的小目标特征和激活分布波动,导致精度暴跌。QAT通过“模拟量化误差+联合优化权重与量化参数”,让INT8模型精度接近FP16,同时速度提升1.8倍,完美适配实时检测场景(如安防监控、自动驾驶)。该流程已在工业级项目中验证,针对YOLOv10的优化策略(敏感层保护、小目标加权、分阶段训练)可直接迁移至其他YOLO系列(v8/v9),量化后精度损失均可控制在1%以内。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 915

罗马数字背后的秘密——LeetCode XII XIII 题记

印象中的罗马数字,多出现在文档标题或序号中:I、II、III、IV、V、VI 等。它是阿拉伯数字传入之前使用的一种数码。其采用七个罗马字母作数字:Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500),注意是没有 0 的。罗马数字的记数方法如下: 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3; 小的数字在大的数字的右边,所表示的数等于这些数字相加...

TEDxPY 992

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

来刷Leecode力扣吧(一):seay题目:整数反转、回文数、罗马数字转整数、最长公共前缀、有效的括号

题目描述:给你一个 32 位的有符号整数 x ,返回将 x 中的数字部分反转后的结果。 如果反转后整数超过 32 位的有符号整数的范围 [−231, 231 − 1] ,就返回 0。 假设环境不允许存储 64 位整数(有符号或无符号)。 示例 1: 输入:x = 123 输出:321 示例 2: 输入:x = -123 输出:-321 示例 3: 输入:x = 120 输出:21 示例 4: 输入:x = 0 输出:0 python: class Solution(object): def rev

qq_29700227的博客 297

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

C++算法:整数转罗马数字

题目: 给定一个整数,将其转为罗马数字。输入确保在 1 到 3999 的范围内。 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII ,即为 X + II 。 27 写做 XXVII, 即为 XX + V + II 。 通常情况下,罗马数字中小的数字在大的数字的右边。但也存在特例,例如 4 不写做 IIII,而是 IV。数字 1 在数字 5 的左边,所表示的数等于大数 5...

ZHAO 1851

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

稀碎从零算法笔记Day44-LeetCode:整数转罗马数字

C++ 整数转化为罗马数字

m0_63356844的博客 1225

leetcode_2: 整数反转(7)、回文数(9)、罗马数字转整数(13)

1.整数反转(7) 给出一个 32 位的有符号整数,你需要将这个整数中每位上的数字进行反转。 注意:假设我们的环境只能存储得下 32 位的有符号整数,则其数值范围为[−231,231− 1]。请根据这个假设,如果反转后整数溢出那么就返回 0。 思路: 1.首先将判断整数的正负,使用标志位(1,-1)进行记录 2.将整数转为字符串str(),利用切片操作将字符串进行逆序 3....

init_bin的博客 267

Leetcode Day5

Leetcode Day5leetcode -11 盛最多水的容器leetcode -12 整数转罗马数字 leetcode -11 盛最多水的容器 題目描述 给你 n 个非负整数 a1,a2,…,an,每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线,垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线,使得它们与 x 轴共同构成的容器可以容纳最多的水。 解 : 雙重指針 這題的想法是,最一開始有兩個指針(left, right),一個指向最左邊

weixin_46803507的博客 212

leetcode12 整数转罗马数字

leetcode12 整数转罗马数字 与罗马数字转整数题面类似。两类解法,一类是类比为用纸币找一定数目的钱,贪心;一类是找规律然后硬编码。罗马数字转整数用的是后者,本题用的是前者。 class Solution: def intToRoman(self, num: int) -> str: res = "" dic = {"M":1000,"CM":900,"D":500,"CD":400,"C":100,"XC":90,"L":50,"XL":40,"X":1

qq_43513855的博客 176

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 例如, 罗马数字 2 写做 II ,即为两个并列的 1 。12 写做 XII ,即为 X + II 。 27 写做

qq_47346664的博客 227

leetcode-罗马数字转整数/合并2个有序链表/回文数

题目链接:https://leetcode-cn.com/problems/roman-to-integer/ 这一题目关键是理解题意!!! 题目中说了,罗马数字中小的数字一般放在大的数字后面,但有特殊情况,是有且只有6种:IV/IX XL/XC CD/CM 所以不存在IL解释为150这种说法,因为这种组合根!本!不!合!法! 所以可以搞一个map先存储所有字符到数字的映射,然...

qq_40123329的博客 189

前端面试八股文通关指南:核心考点拆解与复习策略

在技术面试中,JavaScript闭包、原型链、事件循环、浏览器渲染机制、Vue/React框架原理等基础知识始终是考察重点。理解这些概念背后的设计逻辑与工程价值,不仅能帮助开发者构建扎实的知识体系,还能在实际项目中解决性能优化、组件通信、构建配置等复杂问题。本文以前端八股文为切入点,系统拆解了高频考点的真实面试意图,并给出手写实现、知识图谱搭建、每周复习计划等实战方法,帮助开发者将零散知识点串联成网,真正实现从“背答案”到“讲思路”的跨越,从容应对各类前端岗位的面试挑战。

weixin_34384557的博客 346

【leetcode】罗马数字

12.Integer to Roman:https://leetcode.com/problems/integer-to-roman/ 13.Roman to Integer:https://leetcode.com/problems/roman-to-integer/ 两道题互逆,常规做法。 小tip:用数组、字典,按大小顺序存储罗马字符能提高效率。 ...

lemonade13的博客 167

leetcode-4.23[7. 整数反转、9. 回文数、13. 罗马数字转整数](python解法)

题目1 题解1 class Solution: def reverse(self, x: int) -> int: num, res = abs(x), 0 of = (1 << 31) - 1 if x > 0 else 1 << 31 # 初始一个值存最终结果,每次取出num,取出最小位上的值并把前面...

leadingme的博客 264

力扣第7,11,12题,第一天。

12题 整数转罗马数字。 代码: class Solution { public: string intToRoman(int num) { //打表将每一位上的数字用罗马数字表示出来 string dir[4][10] = { {"","I","II","III","IV","V","VI","VII","VIII","IX"}, {"","X","XX","XXX","XL","L","LX","LXX","LXXX","XC"}, {"","...

qq_62106718的博客 936
上一篇: C语言 LeetCode题目 判断回文数bool类型
下一篇: LeetCode力扣题目:山脉数组的顶峰索引
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值