罗马数字 java_java将罗马数字转换成整数算法详解-Fun言
题目:
罗马数字包含以下七种字符: 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。
给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。
事例:输入: "III"
输出: 3
输入: "IV"
输出: 4
输入: "IX"
输出: 9
输入: "LVIII"
输出: 58
解释: L = 50, V= 5, III = 3.
输入: "MCMXCIV"
输出: 1994
解释: M = 1000, CM = 900, XC = 90, IV = 4.
解题思路:
首先建立一个HashMap来映射符号和值,然后对字符串从左到右来,如果当前字符代表的值不小于其右边,就加上该值;否则就减去该值。以此类推到最左边的数,最终得到的结果即是答案
答案:class Solution {
public int romanToInt(String s) {
String[] arr = s.split("");
Map a=new HashMap<>();
a.put("I",1);
a.put("V",5);
a.put("X",10);
a.put("L",50);
a.put("C",100);
a.put("D",500);
a.put("M",1000);
int sum=0;
for(int i=0;i
if(i
if (a.get(arr[i]) >= a.get(arr[i + 1])) {
sum += a.get(arr[i]);
} else {
sum -= a.get(arr[i]);
}
}else{
sum += a.get(arr[i]);
}
}
return sum;
}
}
你还没有登录,请先使用 QQ登录 或 注册!
文章评论
发表评论
罗马数字 java_java将罗马数字转换成整数算法详解-Fun言相关推荐
- 【LeetCode】【Java】13. 罗马数字转整数——给定一个罗马数字,将其转换成整数。输入确保在 1 到 3999 的范围内。
13. 罗马数字转整数 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 ...
- 编码字典类特征、使用sklearn的DictVectorizer方法将字典组成的列表转换成向量、详解及实战
编码字典类特征.使用sklearn的DictVectorizer方法将字典组成的列表转换成向量.详解及实战 sklearn.feature_extraction.DictVectorizer() 把字 ...
- 程序员面试题精选100题(17)-把字符串转换成整数[算法]
题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程 ...
- DOS文件转换成UNIX文件格式详解
dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 25 ...
- Intellij IDEA 将工程转换成maven工程 详解
1> 右键工程,点击 Add Framework Support 2> 选中 Maven,再点击 OK 3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Ma ...
- 菜鸟扣代码第二天--leetcode13罗马数字转换成整数
题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...
- 力扣13 罗马数字转整数逻辑详解
力扣 13 .罗马数字转整数逻辑详解 题目详情 逻辑分析 代码实现 题目详情 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 1 ...
- python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例
本文实例讲述了Python3.5实现的罗马数字转换成整数功能.分享给大家供大家参考,具体如下: 问题概述: 给定一个罗马数字 ,将罗马数字转换成整数. 如罗马数字I,II,III,IV,V分别代表数字 ...
- 计蒜课挑战难题:罗马数字转换成整数
给定一个罗马数字s,( I<=s<=MMMCMXCIX)(即1到3999),将罗马数字转换成整数. 如罗马数字I,II,III,IV,V分别代表数字1, 2, 3, 4, 5. 格式: 第 ...
最新文章
- 专家认为自动驾驶汽车需要很多年的五个原因
- HTML5响应式企业集团织梦模板,响应式HTML5信息产业企业集团网站织梦模板
- 计算机语言中display翻译,display的意思在线翻译,解释display中文英文含义,短语词组,音标读音,例句,词源,同义词,反义词【澳典网ODict.Net】...
- 使用springaop技术面向切面编程
- IO中的阻塞、非阻塞、同步、异步概念分析详解
- Linux物理内存初始化
- 真机iOS SDK升级后xcode不能进行真机调试 怎么办
- 台灯的内置和外置是什么意思_外置污水提升装置有哪些优势
- PAT之图:遍历、最短路径dijkstra
- [软广]某数据领域在线教育机构
- linux下安装fortran90教程,linux 安装fortran 90 --zz
- 计算机矢量图的优点,矢量图与位图的区别,各自的优缺点……
- ArcGIS实验教程——实验三十:地图注记与标注(标注转注记)用法案例详解
- TOM企业邮箱,为你打造企业专属邮箱
- 火狐——图片闪动 部分情况下加载不出来
- 滴滴新算法让你应对女友?道翰天琼认知智能机器人平台API接口大脑为您揭秘-64
- 爬虫获取页面信息并存储
- 秋招来袭,想学习Java进大厂的小伙伴,这7点武林秘籍一定要点开看看!(附一线互联网大厂MySQL面试高频考点)
- 【第二十四题】逻辑闭环(北理工/北京理工大学/程序设计方法与实践/小学期 )
- 20220319编译OpenHarmony-v3.1-beta出错的解决方法