算法day02 回文 罗马数字转整数

回文

           搞错了String类型的indexOf方法,理解成获取对应下标的值,实际上是在找对应值的下标。

   


     4ms

          耗时最少的方法尽量不会去调用jdk提供的方法,而是直接使用对应的数学逻辑关系来处理,

甚至用 == 代替equals方法。

         

         


   

     罗马数字转整数

        考虑到罗马数字开头出现每一种情况,然后截取该字符串开头

使用递归循环字符串判断开头。拉了一坨大的

class Solution13 {public static int romanToInt(String s) {Map<String,Integer> map = new HashMap<>();map.put("CD",400);map.put("CM",900);map.put("XL",40);map.put("XC",90);map.put("IV",4);map.put("IX",9);map.put("II",2);map.put("III",3);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);Integer count = 0;if (s.startsWith("III")){String substring = s.substring(0, 3);count += map.get(substring);s = s.substring(3);System.out.println(" s1= " + s);System.out.println(" count1= " + count);System.out.println( s.length() == 0);if (s.length() == 0)return count;} else if (s.startsWith("CD")||s.startsWith("CM") ||s.startsWith("XL") ||s.startsWith("XC") ||s.startsWith("IV") ||s.startsWith("IX")||s.startsWith("II")){String substring = s.substring(0, 2);count += map.get(substring);s = s.substring(2);System.out.println(" s2= " + s);System.out.println(" count2= " + count);System.out.println( s.length() == 0);if (s.length() == 0)return count;} else{count += map.get(s.substring(0,1));s = s.substring(1);System.out.println(" s3= " + s);System.out.println(" count3= " + count);System.out.println( s.length() == 0);if (s.length() == 0)return count;}return count + romanToInt(s);}
}

     


           2ms

 

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

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

相关文章

学习笔记——动态路由——OSPF工作原理(SPF算法)

3、SPF算法 SPF算法(最短路径优先算法&#xff0c;也称Dijkstra算法)由荷兰科学家狄克斯特拉于1959年提出的。 SPF算法将每一个路由器作为根(ROOT)来计算其到每一个目的地路由器的距离&#xff0c;每一个路由器根据一个统一的数据库会计算出路由域的拓扑结构图&#xff0c;该…

Go语言--函数类型、匿名函数和闭包

在Go语言中&#xff0c;函数也是一种数据类型&#xff0c;我们可以通过 type 来定义它&#xff0c;它的类型就是所有拥有相同的参数&#xff0c;相同的返回值的一种类型。 语法 通过type给函数类型起名&#xff0c;然后通过名字进行函数的调用 好处&#xff1a;多态 通过统…

python遍历目录下所有文件

python遍历目录下所有文件 方法1&#xff1a;使用os.walk()函数递归遍历目录下所有文件。方法2&#xff1a;使用os.scandir()函数遍历目录下所有文件。方法3&#xff1a;使用os.listdir()函数遍历目录下所有文件。方法4&#xff1a;使用glob模块遍历目录下所有文件。方法5&…

【大模型】大模型参数量与底层算力资源之间的关系

大模型参数量与底层算力资源之间的关系 大模型参数量与底层算力资源之间的关系引言一、大模型参数量的影响1.1 模型表达能力提升1.2 过拟合风险 二、底层算力资源的挑战2.1 计算资源需求2.2 存储与带宽瓶颈 三、估算模型所需算力资源3.1 基于参数量的估算3.2 考虑硬件效率3.3 实…

查询进程, 并且列出所在路径和端口号

ps -ef | grep port9| grep -v grep | awk {print $2} | while read pid; do # 获取启动目录 start_dir$(pwdx $pid 2>/dev/null | awk {for (i2; i<NF; i) printf "%s ", $i; print ""}) # 获取端口信息&#xff08;使用 ss 命令&#xff0…

【ssh】permission denied, please try again.

ssh执行scp操作时显示 permission denied, please try again. 1.确保被复制文件权限已开 chmod 777 file 2.如果仍未解决直接sudo sudo scp xxx xxx

信息安全驱动汽车行业快速向数字化转型

开发一款安全性良好的软件是困难的&#xff0c;它需要专业知识的积累以及对常见编程缺陷和规则的了解&#xff0c;例如检查输入范围、管理内存分配和回收、寻址字符串格式、避免悬空指针等等。通常情况下&#xff0c;编写安全代码与开发人员编写“流畅”代码的自然愿望形成了对…

【数据库】第7讲 关系数据模型(章节测验)

一. 单选题 1【单选题】下面对于关系的叙述中&#xff0c;不正确的是&#xff08;C&#xff09; A、关系中的每个属性是不可分解的B、在关系中元组的顺序是无关紧要的C、任意的一个二维表都是一个关系D、每一个关系只有一种记录类型 2【单选题】关系模型的完整性约束不包括&…

日本最新型高达式巨型机器人承担铁路维护任务

日本有制造现实生活中的高达式巨型机器人的历史&#xff0c;但它们往往是用于娱乐目的&#xff0c;而不是实际应用。不过&#xff0c;日本刚刚开始使用一个 40 英尺高的人形机器人来维护铁路线。 大约两年前&#xff0c;西日本铁路公司&#xff08;JR 西日本&#xff09;制造了…

【Unity】RPG2D龙城纷争(八)寻路系统

更新日期&#xff1a;2024年7月4日。 项目源码&#xff1a;第五章发布&#xff08;正式开始游戏逻辑的章节&#xff09; 索引 简介一、寻路系统二、寻路规则&#xff08;角色移动&#xff09;三、寻路规则&#xff08;角色攻击&#xff09;四、角色移动寻路1.自定义寻路规则2.寻…

[C++]——同步异步日志系统(2)

同步异步日志系统 一、 不定参函数1.1 不定参宏函数的使用1.2 C 语言中不定参函数的使用1.3 C不定参数使用 二、设计模式2.1 单列模式2.2 工厂模式2.3 建造者模式2.4 代理模式 在我们开发同步异步日志系统之前&#xff0c;需要了解一些相关的技术知识。 一、 不定参函数 在初学…

从键盘输入一个3位数字字符串,将其转换为数字,并逆序,不允许使用切片,不需要做判断

分析思路&#xff1a; 首先&#xff0c;从键盘输入一个字符串类型的三位数字&#xff0c;使用input()函数获取用户的输入。 使用int()函数将输入的字符串转换为整数类型。 将输入的整数进行逆序操作&#xff0c;其中具体的步骤包括通过除法和取余操作获取个位、十位和百位上的…

VCL界面组件DevExpress VCL v24.1 - 发布全新的矢量主题

DevExpress VCL是DevExpress公司旗下最老牌的用户界面套包&#xff0c;所包含的控件有&#xff1a;数据录入、图表、数据分析、导航、布局等。该控件能帮助您创建优异的用户体验&#xff0c;提供高影响力的业务解决方案&#xff0c;并利用您现有的VCL技能为未来构建下一代应用程…

DP学习——策略模式

学而时习之&#xff0c;温故而知新。 敌人出招&#xff08;使用场景&#xff09; 业务中需要多个算法可替换&#xff0c;而不能重构代码时&#xff0c;怎么办&#xff1f;这个时候就要出策略模式这一招了。 具体招式 策略模式的招式&#xff0c;就是把需要替换的算法抽象成…

Django REST Framework(四)DRF APIVIEW

REST framework 传入视图的request对象不再是Django默认的HttpRequest对象&#xff0c;而是REST framework提供的扩展了HttpRequest类的Request类的对象。 REST framework 提供了Parser解析器&#xff0c;在接收到请求后会自动根据Content-Type指明的请求数据类型&#xff08;…

Hadoop权威指南-读书笔记-03-Hadoop分布式文件系统

Hadoop权威指南-读书笔记 记录一下读这本书的时候觉得有意思或者重要的点~ 还是老样子~挑重点记录哈&#x1f601;有兴趣的小伙伴可以去看看原著&#x1f60a; 第三章 Hadoop分布式文件系统 当数据集的大小超过一台独立的物理计算机的存储能力时&#xff0c;就有必要对它进行分…

【数据结构】(C语言):二叉搜索树(不使用递归)

二叉搜索树&#xff1a; 非线性的&#xff0c;树是层级结构。基本单位是节点&#xff0c;每个节点最多2个子节点。有序。每个节点&#xff0c;其左子节点都比它小&#xff0c;其右子节点都比它大。每个子树都是一个二叉搜索树。每个节点及其所有子节点形成子树。可以是空树。 …

CAS(比较与交换)实现原理

CAS&#xff08;Compare and Swap&#xff0c;即比较并交换&#xff09;是一种用于多线程编程中无锁原子操作的机制&#xff0c;常用于实现并发数据结构和算法。CAS 操作通过硬件支持的原子操作实现&#xff0c;可以避免锁带来的开销&#xff0c;提高并发性能。以下是CAS实现原…

选择远程调用的底层实现技术

(1)、 理论基础 feign的远程调用底层实现技术默认采用的是JDK的 URLConnection&#xff0c;同时还支持 HttpClient与 OKHttp。 由于JDK的URLConnection不支持连接池&#xff0c;通信效率很低&#xff0c;所以生产中是不会使用该默认实现的。所以在SpringCloudOpenFeign中直接将…

【堆 优先队列】23. 合并 K 个升序链表

本文涉及知识点 堆 优先队列 LeetCode23. 合并 K 个升序链表 给你一个链表数组&#xff0c;每个链表都已经按升序排列。 请你将所有链表合并到一个升序链表中&#xff0c;返回合并后的链表。 示例 1&#xff1a; 输入&#xff1a;lists [[1,4,5],[1,3,4],[2,6]] 输出&#…