摘要:解题思路其中每两个阶段的之间有一个减法的表示,比如,写在前面表示。所以映射关系应该是然后就是贪心的做法,每次选择能表示的最大值,把对应的字符串连起来。
Roman to Integer
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
解题思路:
其中每两个阶段的之间有一个减法的表示,比如 900=CM, C 写在 M 前面表示 M-C。
所以映射关系应该是
string symbol[]={"M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"}; int value[]= {1000,900,500,400, 100, 90, 50, 40, 10, 9, 5, 4, 1};
然后就是贪心的做法,每次选择能表示的最大值,把对应的字符串连起来。
public String intToRoman(int num) { StringBuilder sb = new StringBuilder(); // result String[] str = new String[] { "M", "CM", "D", "CD", "C", "XC", "L", "XL", "X", "IX", "V", "IV", "I" }; int value[]= {1000,900,500,400, 100, 90, 50, 40, 10, 9, 5, 4, 1}; for(int i=0; num!=0; ++i){ while(num >= value[i]){ num = num - value[i]; sb.append(str[i]); } } return sb.toString(); }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/64335.html
摘要:题目详情题目的意思是输入一个阿拉伯数字,我们需要输出这个数字的罗马数字表示形式字符串。想法这道题最重要的点就是理解罗马数和阿拉伯数之间的转换规律。 题目详情 Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.题目的意思是: 输...
摘要:正则表达式思路首先我们要熟悉罗马数的表达方式。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于,从千位到个位依次拆解。 Valid Roman Numeral 正则表达式 思路 首先我们要熟悉罗马数的表达方式。M是1000,D是500,C是100,L是50,X是10,V是5,I是1。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于50...
摘要:题目链接题目分析将给定的罗马数字转换成阿拉伯数字。要注意,先替换连续出现的那些。最终代码若觉得本文章对你有用,欢迎用爱发电资助。 D82 13. Roman to Integer 题目链接 13. Roman to Integer 题目分析 将给定的罗马数字转换成阿拉伯数字。 思路 用替换法。 要注意,先替换连续出现的那些。例如,比先替换I,要先替换III。 最终代码
摘要:将罗马字母的字符串转换为代表的整数这题不难,用一个存罗马数字和具体数字的对应关系,然后遍历前后两两比较,该加加,该减减时间复杂度这里是自己写的一个方法,里面用一个,相当于存对应当时一直想着用一个来存减的值,所以没法用就用了指针,但其实就 Easy 013 Roman to Integer Description: 将罗马字母的字符串转换为代表的整数Roman numerals are ...
摘要:字符数值例如,罗马数字写做,即为两个并列的。通常情况下,罗马数字中小的数字在大的数字的右边。给定一个罗马数字,将其转换成整数。 Create by jsliang on 2019-05-23 13:24:24 Recently revised in 2019-05-23 14:55:20 一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 解题 ...
阅读 3060·2021-11-23 10:09
阅读 2042·2021-10-26 09:51
阅读 952·2021-10-09 09:44
阅读 3876·2021-10-08 10:04
阅读 2728·2021-09-22 15:14
阅读 3562·2021-09-22 15:02
阅读 992·2021-08-24 10:03
阅读 1700·2019-12-27 12:14