摘要:将罗马字母的字符串转换为代表的整数这题不难,用一个存罗马数字和具体数字的对应关系,然后遍历前后两两比较,该加加,该减减时间复杂度这里是自己写的一个方法,里面用一个,相当于存对应当时一直想着用一个来存减的值,所以没法用就用了指针,但其实就
Easy 013 Roman to Integer Description:
将罗马字母的字符串转换为代表的整数
Roman numerals are usually written largest to smallest from left to right. However, there are six instances where subtraction is used:
I can be placed before V (5) and X (10) to make 4 and 9.
X can be placed before L (50) and C (100) to make 40 and 90.
C can be placed before D (500) and M (1000) to make 400 and 900.
Symbol Value I 1 V 5 X 10 L 50 C 100 D 500 M 1000My Solution:
这题不难,用一个HashMap存罗马数字和具体数字的对应关系,然后遍历前后两两比较,该加加,该减减
时间复杂度O(n)
Fast Solution:
public static int romanToInt(String s) { int num = 0; int n = s.length(); for (int i = 0; i < n-1; i++) { int curr = map(s.charAt(i)); //这里map是自己写的一个方法,里面用一个switch,相当于HashMap存对应 int next = map(s.charAt(i+1)); num = curr < next ? num - curr : num + curr; //当时一直想着用一个temp来存减的值,所以没法用for就用了while&point指针,但其实就是很简单的比后面小的话在总值里面减去就可以,不需要temp } num += map(s.charAt(n-1)); return num; }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/74252.html
摘要:字符数值例如,罗马数字写做,即为两个并列的。通常情况下,罗马数字中小的数字在大的数字的右边。给定一个罗马数字,将其转换成整数。 Create by jsliang on 2019-05-23 13:24:24 Recently revised in 2019-05-23 14:55:20 一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 解题 ...
摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...
摘要:自己没事刷的一些的题目,若有更好的解法,希望能够一起探讨项目地址 自己没事刷的一些LeetCode的题目,若有更好的解法,希望能够一起探讨 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...
摘要:正则表达式思路首先我们要熟悉罗马数的表达方式。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于,从千位到个位依次拆解。 Valid Roman Numeral 正则表达式 思路 首先我们要熟悉罗马数的表达方式。M是1000,D是500,C是100,L是50,X是10,V是5,I是1。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于50...
摘要:题目详情题目的意思是输入一个阿拉伯数字,我们需要输出这个数字的罗马数字表示形式字符串。想法这道题最重要的点就是理解罗马数和阿拉伯数之间的转换规律。 题目详情 Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.题目的意思是: 输...
阅读 3542·2023-04-25 19:56
阅读 1660·2021-11-12 10:36
阅读 1781·2021-11-08 13:19
阅读 1544·2019-08-30 14:06
阅读 3031·2019-08-30 11:01
阅读 1711·2019-08-29 13:23
阅读 2731·2019-08-29 11:18
阅读 3422·2019-08-26 13:35