LeetCode13——罗马数字转整数

在这里插入图片描述


解题思想:
前后指针
左边比右边小 做减法
左边比右边大 做加法
最后一个数字直接加。

在这里插入图片描述

package keepcoding.leetcode.leetcode13;public class Result02 {public static void main(String[] args) {int result = romanToInt("XIV");System.out.println(result);}public static int romanToInt(String s) {//sum用于记录总和int sum = 0;//类似双指针 preNUM  num//初始pre在0 num 在1int preNum = getValue(s.charAt(0));//String类的CharAt(int i)方法——返回i位置上的字符for(int i = 1;i < s.length(); i ++) {int num = getValue(s.charAt(i));//左边大于右边做减法if(preNum < num) {sum -= preNum;} else {//否则做加法sum += preNum;}//运算完后,前指针 后移preNum = num;}//最后一位直接相加sum += preNum;return sum;}private static int getValue(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;default:  return 0;}}}

官方解:
在这里插入图片描述

package keepcoding.leetcode.leetcode13;import java.util.HashMap;public class Result01 {public static void main(String[] args) {int result = romanToInt("MCMXCIV");System.out.println(result);}public static int romanToInt(String s){//建立转换表HashMap<Character, Integer> map = new HashMap<Character,Integer>();map.put('I',1);map.put('V', 5);map.put('X', 10);map.put('L', 50);map.put('C', 100);map.put('D', 500);map.put('M', 1000);//定义result 用于记录返回的结果int result = 0;for (int i = 0; i < s.length(); i++) {//s.charAt(i)返回字符串s在i位置上的字符;map.get(key) 获取哈希表对应键的值int value = map.get(s.charAt(i));//i < s.length()-1 防// 止i+1越界if (i< s.length()-1 && value <map.get(s.charAt(i+1))){//左边比右边小 相减result -= value;}else{result += value;}}return result;}
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/113284.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

最近又火了!吴恩达《生成式 AI》重磅发布!

吴恩达教授可能是许多人接触 AI 的启蒙课导师吧&#xff0c;在过去的十多年中&#xff0c;他的《Machine Learning》课程已经对数百万的学习者产生了积极影响。 而随着 ChatGPT 的推出&#xff0c;大模型和各类生成式人工智能&#xff08;GenAI&#xff09;技术在行业内外备受…

Hive跨集群数据迁移过程

文章目录 环境数据迁移需求迁移过程记录 环境 Hive集群AHive集群B跳转机一台 数据迁移需求 本次迁移数据100G&#xff0c;15亿条&#xff0c;数据流转方向从集群A经过跳转机到集群B&#xff0c;通过HDFS拉取和重新建表导入的方式完成数据库迁移。 迁移过程记录 - 当前操作…

数据结构:排序

文章目录 1. 预备知识2. 插入排序2.1 直接插入排序2.2 折半插入排序 3. 希尔排序4. 交换排序4.1 冒泡排序4.2 快速排序4.2.1 选取基准值4.2.2 分割策略4.2.3 小数组4.2.4 基于Hoare版本 最后优化 递归版本 快速排序4.2.5 快速排序的非递归版本4.2.6 快速排序的分析 5. 选择排序…

[云原生1.]Docker数据管理与Cgroups资源控制管理

文章目录 1. Docker的数据管理1.1 数据卷1.1.1 示例 1.2 数据卷容器 2. 容器互联3. Cgroups资源控制管理3.1 简介3.2 cgroups的主要功能3.3 cpu时间片的简单介绍3.4 对CPU使用的限制3.4.1 对CPU使用的限制&#xff08;基于单个容器&#xff09;3.4.2 对CPU使用的限制&#xff0…

Linux CentOS 8(网卡的配置与管理)

Linux CentOS 8&#xff08;网卡的配置与管理&#xff09; 目录 一、项目介绍二、命令行三、配置文件四、图形画界面的网卡IP配置4.1 方法一4.2 方法二 一、项目介绍 Linux服务器的网络配置是Linux系统管理的底层建筑&#xff0c;没有网络配置&#xff0c;服务器之间就不能相互…

个微多账号聚合聊天管理如何实现?

在日常工作中&#xff0c;我经常遇到以下问题&#xff1a; 1. 微信号众多&#xff0c;需要频繁切换设备和账号&#xff0c;导致工作效率低下。 2. 无法及时回复客户消息&#xff0c;客户体验不尽如人意。 3. 难以随时掌握员工与客户的沟通情况&#xff0c;导致员工沟通质量难…

利用Python计算彭于晏的BMI

1 问题 彭于晏是众多男生女生心中的男神&#xff0c;那么他的BMI为多少&#xff0c;身体状况如何呢&#xff1f; 2 方法 运用python中数据类型转换&#xff0c;while 循环语句&#xff0c;if/elif/else 条件语句等方法计算彭于晏的BMI&#xff0c;判断他的身体状况。 计算公式…

烘焙蛋糕外卖小程序商城的作用是什么

随着经营成本上升及电商业态的冲击&#xff0c;传统烘焙蛋糕门店商家经营止步不前&#xff0c;加之口罩原因更是雪上加霜&#xff0c;引流拓客、经营转化复购大幅度降低&#xff0c;而线上又因外卖平台间的激烈竞争&#xff0c;导致中小烘焙蛋糕商家进退两难。 烘焙蛋糕店经营…

学习git博客

git新建分支并且提交代码过程 1. git pull <codeBaseAddress> [分支名(默认是master)] 2. cd <projectName> 3. git branch <newBranchName> // 创建分支 4. git checkout <newBranchName> // 切换到新分支 // 开始写你的新代码 5. git add . //…

Hive篇面试题+详解

Hive篇面试题 1.什么是Hive&#xff1f;它的主要功能是什么&#xff1f; Hive是一个基于Hadoop的数据仓库工具&#xff0c;它提供了一个类SQL的查询语言&#xff08;HiveQL&#xff09;来查询和分析存储在Hadoop集群中的大规模数据。Hive的主要功能是将结构化数据映射到Hadoop…

动手学深度学习—使用块的网络VGG(代码详解)

目录 1. VGG块2. VGG网络3. 训练模型 1. VGG块 经典卷积神经网络的基本组成部分是下面的这个序列&#xff1a; 1.带填充以保持分辨率的卷积层&#xff1b; 2.非线性激活函数&#xff0c;如ReLU&#xff1b; 3.汇聚层&#xff0c;如最大汇聚层。 定义网络块&#xff0c;便于我…

【安全体系架构】——零信任网络架构

什么是零信任网络架构&#xff1f; 零信任网络架构是一种网络和信息安全模型&#xff0c;它将传统的信任模型颠覆&#xff0c;不再信任内部或外部用户、设备或网络。相反&#xff0c;它将每个访问请求都视为不受信任&#xff0c;要求对每个用户、设备和流量都进行认证和授权&a…

2023-10-20 LeetCode每日一题(根据规则将箱子分类)

2023-10-20每日一题 一、题目编号 2525. 根据规则将箱子分类二、题目链接 点击跳转到题目位置 三、题目描述 给你四个整数 length &#xff0c;width &#xff0c;height 和 mass &#xff0c;分别表示一个箱子的三个维度和质量&#xff0c;请你返回一个表示箱子 类别 的字…

底层驱动day2作业

控制三盏灯亮灭 代码&#xff1a; //head.h#ifndef __HEAD_H__ #define __HEAD_H__ #define PHY_RCC 0x50000A28 #define PHY_GPIOE_MODER 0x50006000 #define PHY_GPIOF_MODER 0x50007000 #define PHY_GPIOE_ODR 0x50006014 #define PHY_GPIOF_ODR 0x50007014#endif //demo…

播放svga动画的时候 第一次加载资源,然后切换动画 会动画会重影

如果在切换 SVGA 动画的过程中&#xff0c;第一次加载时出现重影&#xff0c;但第二次及以后的切换没有重影&#xff0c;这可能是由于第一次加载时资源缓存不完整导致的。为了解决这个问题&#xff0c;你可以尝试以下方法&#xff1a; 1.在每次切换动画之前&#xff0c;预先加…

C#经典十大排序算法(完结)

C#冒泡排序算法 简介 冒泡排序算法是一种基础的排序算法&#xff0c;它的实现原理比较简单。核心思想是通过相邻元素的比较和交换来将最大&#xff08;或最小&#xff09;的元素逐步"冒泡"到数列的末尾。 详细文章描述 https://mp.weixin.qq.com/s/z_LPZ6QUFNJcw…

vue-pdf多页预览异常,Rendering cancelled, page 1 Error at BaseExceptionClosure xxx

项目开发使用vue-pdf,单页情况预览正常&#xff0c;多页vue-pdf预览异常&#xff0c;第一次预览时&#xff0c;会先弹出异常模态窗口&#xff0c;关闭模态窗口&#xff0c;pdf又是正常显示&#xff0c;报错信息及异常截图如下&#xff1a; 报错信息 Rendering cancelled, page…

【PADS封装】2.4G PCB天线封装(量产用)

包含了我们平时常用的2.4GPCB天线封装&#xff0c;总共11种封装。完全能满足日常设计使用。 下载链接&#xff01;&#xff01;https://mp.weixin.qq.com/s?__bizMzU2OTc4ODA4OA&mid2247548815&idx1&sne625e51a06755a34ab4404497770df48&chksmfcfb2c58cb8ca5…

MMWHS数据集

Multi-Modality Whole Heart Segmentation (MMWHS) 数据集[1] 是多模态医疗图像数据集&#xff0c;有磁共振&#xff08;Magnetic Resonance Imaging&#xff0c;MRI&#xff09;和断层扫描&#xff08;Computed Tomography&#xff0c;CT&#xff09;两种&#xff0c;[2] 对数…

探索图像分割技术:使用 OpenCV 的分水岭算法

贾斯卡兰巴蒂亚 一、说明 图像分割是计算机视觉的一个基本方面&#xff0c;多年来经历了巨大的转变。这将是一系列三篇博客文章&#xff0c;深入研究三种不同的图像分割技术 - 1使用OpenCV的经典分水岭算法&#xff0c;2使用PyTorch实现的基于深度学习的UNet模型&#xff0c;3 …