题目:

罗马数字包含以下七种字符: 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言相关推荐

  1. 【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 ...

  2. 编码字典类特征、使用sklearn的DictVectorizer方法将字典组成的列表转换成向量、详解及实战

    编码字典类特征.使用sklearn的DictVectorizer方法将字典组成的列表转换成向量.详解及实战 sklearn.feature_extraction.DictVectorizer() 把字 ...

  3. 程序员面试题精选100题(17)-把字符串转换成整数[算法]

    题目:输入一个表示整数的字符串,把该字符串转换成整数并输出.例如输入字符串"345",则输出整数345. 分析:这道题尽管不是很难,学过C/C++语言一般都能实现基本功能,但不同程 ...

  4. DOS文件转换成UNIX文件格式详解

    dos格式文件传输到unix系统时,会在每行的结尾多一个^M,当然也有可能看不到,但是在vi的时候,会在下面显示此文件的格式,比如 "dos.txt" [dos] 120L, 25 ...

  5. Intellij IDEA 将工程转换成maven工程 详解

    1> 右键工程,点击 Add Framework Support   2> 选中 Maven,再点击 OK   3> 工程根目录自动生成 pom.xml 文件,这样 工程就支持 Ma ...

  6. 菜鸟扣代码第二天--leetcode13罗马数字转换成整数

    题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如, 罗马数字 2 写做 II ...

  7. 力扣13 罗马数字转整数逻辑详解

    力扣 13 .罗马数字转整数逻辑详解 题目详情 逻辑分析 代码实现 题目详情 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M. 字符 数值 I 1 V 5 X 10 L 50 C 1 ...

  8. python罗马数字转换,Python3.5实现的罗马数字转换成整数功能示例

    本文实例讲述了Python3.5实现的罗马数字转换成整数功能.分享给大家供大家参考,具体如下: 问题概述: 给定一个罗马数字 ,将罗马数字转换成整数. 如罗马数字I,II,III,IV,V分别代表数字 ...

  9. 计蒜课挑战难题:罗马数字转换成整数

    给定一个罗马数字s,( I<=s<=MMMCMXCIX)(即1到3999),将罗马数字转换成整数. 如罗马数字I,II,III,IV,V分别代表数字1, 2, 3, 4, 5. 格式: 第 ...

最新文章

  1. 专家认为自动驾驶汽车需要很多年的五个原因
  2. HTML5响应式企业集团织梦模板,响应式HTML5信息产业企业集团网站织梦模板
  3. 计算机语言中display翻译,display的意思在线翻译,解释display中文英文含义,短语词组,音标读音,例句,词源,同义词,反义词【澳典网ODict.Net】...
  4. 使用springaop技术面向切面编程
  5. IO中的阻塞、非阻塞、同步、异步概念分析详解
  6. Linux物理内存初始化
  7. 真机iOS SDK升级后xcode不能进行真机调试 怎么办
  8. 台灯的内置和外置是什么意思_外置污水提升装置有哪些优势
  9. PAT之图:遍历、最短路径dijkstra
  10. [软广]某数据领域在线教育机构
  11. linux下安装fortran90教程,linux 安装fortran 90 --zz
  12. 计算机矢量图的优点,矢量图与位图的区别,各自的优缺点……
  13. ArcGIS实验教程——实验三十:地图注记与标注(标注转注记)用法案例详解
  14. TOM企业邮箱,为你打造企业专属邮箱
  15. 火狐——图片闪动 部分情况下加载不出来
  16. 滴滴新算法让你应对女友?道翰天琼认知智能机器人平台API接口大脑为您揭秘-64
  17. 爬虫获取页面信息并存储
  18. 秋招来袭,想学习Java进大厂的小伙伴,这7点武林秘籍一定要点开看看!(附一线互联网大厂MySQL面试高频考点)
  19. 【第二十四题】逻辑闭环(北理工/北京理工大学/程序设计方法与实践/小学期 )
  20. 20220319编译OpenHarmony-v3.1-beta出错的解决方法

热门文章

  1. 连续系统与离散系统的时域分析
  2. 目标检测、追踪梳理:帧差法、光流法、背景减除法
  3. 白平衡之灰度世界算法
  4. 4.8 范德蒙德行列式
  5. 昇腾Ascend处理器相关介绍
  6. 棋子的移动问题(递归问题)
  7. 【离散数学】数理逻辑 第一章 命题逻辑(7) 命题逻辑的推理理论
  8. Github上设置小图标/小徽章
  9. 2014阿里实习生面试题——mysql如何实现索引的
  10. 十二星座匹配对象_来看十二星座最配与最不配的对象是谁