罗马数字转整数-力扣通过自己编译器编译
学会将力扣题目用自己自带的编译软件编译---纯自己想的本题解法
字符 数值 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。
给定一个罗马数字,将其转换成整数。
方法一:模拟
思路
通常情况下,罗马数字中小的数字在大的数字的右边。若输入的字符串满足该情况,那么可以将每个字符视作一个单独的值,累加每个字符对应的数值即可。
-
时间复杂度:O(n)O(n)O(n),其中 nnn 是字符串 sss 的长度。
-
空间复杂度:O(1)O(1)O(1)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>int romanToInt(char* s) {int len = strlen(s);int sum=0;for(int i=0;i<len;i++){if(s[i]=='I' && s[i+1]=='V'){sum += 4;i++;}else if(s[i]=='I' && s[i+1]=='X'){sum += 9;i++;}elseif(s[i]=='X' && s[i+1]=='L'){sum += 40;i++;}elseif(s[i]=='X' && s[i+1]=='C'){sum += 90;i++;}elseif(s[i]=='C' && s[i+1]=='D'){sum += 400;i++;}elseif(s[i]=='C' && s[i+1]=='M'){sum += 900;i++;}else{switch(s[i]){case 'I':sum += 1; break;case 'V':sum += 5; break;case 'X':sum += 10; break;case 'L':sum += 50; break;case 'C':sum += 100; break;case 'D':sum += 500; break;case 'M':sum += 1000; break;}}}return sum;
}int main(){char a[]="MCMXCIV";printf("%d",romanToInt(a));return 0;
}
学会将力扣题目用自己自带的编译软件编译
字符 数值 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。
给定一个罗马数字,将其转换成整数。
方法一:模拟
思路
通常情况下,罗马数字中小的数字在大的数字的右边。若输入的字符串满足该情况,那么可以将每个字符视作一个单独的值,累加每个字符对应的数值即可。
-
时间复杂度:O(n)O(n)O(n),其中 nnn 是字符串 sss 的长度。
-
空间复杂度:O(1)O(1)O(1)
#include<stdio.h>
#include<string.h>
#include<stdlib.h>int romanToInt(char* s) {int len = strlen(s);int sum=0;for(int i=0;i<len;i++){if(s[i]=='I' && s[i+1]=='V'){sum += 4;i++;}else if(s[i]=='I' && s[i+1]=='X'){sum += 9;i++;}elseif(s[i]=='X' && s[i+1]=='L'){sum += 40;i++;}elseif(s[i]=='X' && s[i+1]=='C'){sum += 90;i++;}elseif(s[i]=='C' && s[i+1]=='D'){sum += 400;i++;}elseif(s[i]=='C' && s[i+1]=='M'){sum += 900;i++;}else{switch(s[i]){case 'I':sum += 1; break;case 'V':sum += 5; break;case 'X':sum += 10; break;case 'L':sum += 50; break;case 'C':sum += 100; break;case 'D':sum += 500; break;case 'M':sum += 1000; break;}}}return sum;
}int main(){char a[]="MCMXCIV";printf("%d",romanToInt(a));return 0;
}
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int romanToInt(char* s) {
int len = strlen(s);
int sum=0;
for(int i=0;i<len;i++){
if(s[i]=='I' && s[i+1]=='V'){
sum += 4;
i++;
}else
if(s[i]=='I' && s[i+1]=='X'){
sum += 9;
i++;
}else
if(s[i]=='X' && s[i+1]=='L'){
sum += 40;
i++;
}else
if(s[i]=='X' && s[i+1]=='C'){
sum += 90;
i++;
}else
if(s[i]=='C' && s[i+1]=='D'){
sum += 400;
i++;
}else
if(s[i]=='C' && s[i+1]=='M'){
sum += 900;
i++;
}else{
switch(s[i]){
case 'I':sum += 1; break;
case 'V':sum += 5; break;
case 'X':sum += 10; break;
case 'L':sum += 50; break;
case 'C':sum += 100; break;
case 'D':sum += 500; break;
case 'M':sum += 1000; break;
}
}
}
return sum;
}
int main(){
char a[]="MCMXCIV";
printf("%d",romanToInt(a));
return 0;
}
相关文章:
罗马数字转整数-力扣通过自己编译器编译
学会将力扣题目用自己自带的编译软件编译---纯自己想的本题解法 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ,即为两…...
深入解析JVM加载机制
一、背景 Java代码被编译器变成生成Class字节码,但字节码仅是一个特殊的二进制文件,无法直接使用。因此,都需要放到JVM系统中执行,将Class字节码文件放入到JVM的过程,简称类加载。 二、整体流程 三、阶段逻辑分析 3…...
python redis中blpop和lpop的区别
python redis中lpop()方法是获取并删除左边第一个对象。 def lpop(self,name: str,count: Optional[int] None,) -> Union[Awaitable[Union[str, List, None]], Union[str, List, None]]:"""Removes and returns the first elements of the list name.By de…...
第四百一十回
文章目录 1. 概念介绍2. 方法与细节2.1 获取方法2.2 使用细节 3. 示例代码4. 内容总结 我们在上一章回中介绍了"如何获取当前系统语言"相关的内容,本章回中将介绍如何获取时间戳.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在本章…...
程序员的README——编写可维护的代码(一)
用户行为不可预测,网络不可靠,事情总会出错。生产环境下的软件必须一直保持可用状态。 编写可维护的代码有助于你应对不可预见的情况,可维护的代码有内置的保护、诊断和控制。 切记通过安全和有弹性的编码实践进行防御式编程来保护你的系统&a…...
数据库管理-第160期 Oracle Vector DB AI-11(20240312)
数据库管理160期 2024-03-12 数据库管理-第160期 Oracle Vector DB & AI-11(20240312)1 向量的函数操作to_vector()将vector转换为标准值vector_norm()vector_dimension_count()vector_dimension_format() 2 将向量转换为字符串或CLOBvector_seriali…...
(C++进阶)boost库笔记
目录 1、boost::function 1.1 概述 1.2 boost包装器和C11包装器对比 1.2、代码示例 1、boost::function 1.1 概述 boost::function 是 Boost 库中提供的一个通用函数对象包装器,它可以存储指向任何可调用对象的指针,并且可以在任何时候通过 operat…...
MapReduce面试重点
文章目录 1. 简述MapReduce整个流程2. join原理 1. 简述MapReduce整个流程 数据划分(Input Splitting):开始时,输入数据被分割成逻辑上的小块,每个块被称为Input Split。 映射(Map):每个Input Split 由一个或多个Map任务处理&…...
C语言简单题(7)从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串
从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串 /* 从主函数中输入10个等长字符串,用一个函数对他们排序,然后在主函数输出这10个已排好序的字符串 */ #include<stdio.h> …...
光伏科普|太阳能光伏发电应用场景有哪些?
太阳能光伏发电的应用领域其实非常广泛,很多人会不相信,但在我们的日常生活中随处可见太阳能光伏产业,本文将详细介绍其应用场景有哪些。 一、工业领域厂房 太阳能光伏发电作为一种清洁、可再生的能源,安装在工业领域厂房&#…...
Go 构建高效的二叉搜索树联系簿
引言 树是一种重要的数据结构,而二叉搜索树(BST)则是树的一种常见形式。在本文中,我们将学习如何构建一个高效的二叉搜索树联系簿,以便快速插入、搜索和删除联系人信息。 介绍二叉搜索树 二叉搜索树是一种有序的二叉…...
基于YOLOv8/YOLOv7/YOLOv6/YOLOv5的交通信号灯识别系统(深度学习+UI界面+训练数据集+Python代码)
摘要:本研究详细介绍了一种采用深度学习技术的交通信号灯识别系统,该系统集成了最新的YOLOv8算法,并与YOLOv7、YOLOv6、YOLOv5等早期算法进行了性能评估对比。该系统能够在各种媒介——包括图像、视频文件、实时视频流及批量文件中——准确地…...
以太坊开发学习-solidity(三)函数类型
目录 函数类型 函数类型 solidity官方文档里把函数归到数值类型 函数类型是一种表示函数的类型。可以将一个函数赋值给另一个函数类型的变量, 也可以将一个函数作为参数进行传递,还能在函数调用中返回函数类型变量。 函数类型有两类:- 内部&…...
教你把公司吃干抹净、榨干带走
大家好: 衷心希望各位点赞。 您的问题请留在评论区,我会及时回答 正文 打工人一定要做到够自私,把公司的一切为我所用,你要知道闷头打工是没有出路的。聪明的人会以最快的速度榨干带走公司的一切资源、人脉、技能,为…...
开发指南007-导出Excel
平台上开发导出Excel比过去的单体架构要复杂些,因为前端和后台不在一个进程空间里。 后台的操作是先生成excel文件,技术路线是jxl <dependency><groupId>net.sourceforge.jexcelapi</groupId><artifactId>jxl</artifactId&g…...
滑块验证码
1.这里针对滑块验证给了一个封装的组件verifition,使用直接可以调用 2.组件目录 3.每个文件的内容 3.1 Api文件中只有一个index.js文件,用来存放获取滑块和校验滑块结果的api import request from /router/axios//获取验证图片 export function reqGe…...
cmd常用指令
cmd全称Command Prompt,中文译为命令提示符。 命令提示符是在操作系统中,提示进行命令输入的一种工作提示符。 在不同的操作系统环境下,命令提示符各不相同。 在windows环境下,命令行程序为cmd.exe,是一个32位的命令…...
【嵌入式DIY实例】-DIY手势识别和颜色识别(基于APDS9960)
DIY手势识别和颜色识别(基于APDS9960) 文章目录 DIY手势识别和颜色识别(基于APDS9960)1、硬件准备2、APDS9960 手势识别传感器介绍3、硬件接线4、代码实现4.1 手势识别4.2 颜色识别4.3 趋近感应代码5、综合实例代码在本文中,我们将介绍 APDS9960 手势、RGB 和接近传感器与…...
python 直方图
python可以调用hist方法绘制直方图。 import matplotlib.pyplot as plt import numpy as np; plt.rcParams["font.family"]["SimHei"] # 确保图中中文字体正确显示 x[0.1,0.2,0.3,0.4,0.5,0.6,0.1,0.2,0.2,0.2] plt.xlabel(满意程度) plt.ylabel(频数) …...
如何在数据库中使用sql语言插入数据
在SQL中,你可以使用INSERT INTO语句来添加数据到数据库表中。以下是一个基本示例,说明如何向表中插入数据: 假设你有一个名为students的表,它有以下字段:id, name, age 和 grade。 CREATE TABLE students ( id INT P…...
Windows离线语音转文字终极指南:TMSpeech让会议记录变得简单高效!
Windows离线语音转文字终极指南:TMSpeech让会议记录变得简单高效! 【免费下载链接】TMSpeech 腾讯会议摸鱼工具 项目地址: https://gitcode.com/gh_mirrors/tm/TMSpeech 还在为会议记录手忙脚乱吗?担心语音识别软件泄露隐私࿱…...
ContextMenuManager:重新定义Windows右键菜单的交互设计思维
ContextMenuManager:重新定义Windows右键菜单的交互设计思维 【免费下载链接】ContextMenuManager 🖱️ 纯粹的Windows右键菜单管理程序 项目地址: https://gitcode.com/gh_mirrors/co/ContextMenuManager 在数字工作流中,我们每天平均…...
C#基于TCP通信协议的实现示例
1. 客户端代码(TCpClient/Program.cs)该代码实现了一个基础的 TCP 客户端程序,核心逻辑是与指定 IP 和端口的 TCP 服务器建立连接,向服务器发送控制台输入的字符串数据,并接收服务器的响应数据,最后释放连接…...
构建全球生活便利度指数:多维数据驱动的发展评估框架
1. 项目概述:从数据视角看世界发展作为一名长期和数据打交道的分析师,我常常被问到:如何客观地衡量一个国家或地区的发展水平?是看GDP总量,还是人均收入?是看高楼大厦的数量,还是普通民众的幸福…...
Linux 用户管理详解(useradd / userdel / usermod 实战)
前言用户管理是Linux运维基础核心,日常工作中需要频繁创建业务账号、删除废弃账号、修改用户权限信息。本文详解 useradd 创建用户、userdel 删除用户、usermod 修改用户 三大核心命令,搭配生产实战案例、高频参数、避坑技巧,新手可直接落地使…...
经典通信赋能分布式量子机器学习:NISQ时代的实用化路径探索
1. 项目概述:当量子机器学习遇上分布式架构量子机器学习(QML)这几年火得不行,它背后的逻辑其实挺吸引人的:利用量子态的叠加和纠缠特性,把数据映射到指数级庞大的希尔伯特空间里进行处理。理论上࿰…...
84、CAN FD数据链路层革新:可变数据场长度与DLC编码
004、CAN FD数据链路层革新:可变数据场长度与DLC编码 一、一个让我熬夜的调试现场 去年做某新能源车BMS项目,客户要求把电池包内部温度数据从8字节扩展到32字节。我心想简单,传统CAN报文拆成4帧发呗。结果现场联调时,主控那边死活收不到完整数据——不是丢帧就是乱序,最…...
8051单片机sbit与extern bit的L1警告解决方案
1. 问题背景与现象分析在8051单片机开发中,我们经常需要直接操作特殊功能寄存器(SFR)的位。比如用P1.4引脚作为片选信号线时,通常会这样定义:sbit CS P1^4;但当这个定义放在主程序文件,而其他模块文件通过…...
揭秘AI Agent如何3天筛选10万简历:头部猎企正在用的5个私有化部署方案
更多请点击: https://intelliparadigm.com 第一章:AI Agent招聘行业应用全景图 AI Agent正以前所未有的深度与广度重塑招聘行业的技术范式。它不再局限于简历关键词匹配或简单流程自动化,而是以多角色协同、上下文感知、自主决策为特征&…...
如何快速配置TQVaultAE:泰坦之旅玩家的终极装备管理与存档扩展指南
如何快速配置TQVaultAE:泰坦之旅玩家的终极装备管理与存档扩展指南 【免费下载链接】TQVaultAE Extra bank space for Titan Quest Anniversary Edition 项目地址: https://gitcode.com/gh_mirrors/tq/TQVaultAE TQVaultAE是《泰坦之旅周年版》玩家的开源装备…...
