资讯专栏INFORMATION COLUMN

【LeetCode Easy】013 Roman to Integer

wizChen / 3341人阅读

摘要:将罗马字母的字符串转换为代表的整数这题不难,用一个存罗马数字和具体数字的对应关系,然后遍历前后两两比较,该加加,该减减时间复杂度这里是自己写的一个方法,里面用一个,相当于存对应当时一直想着用一个来存减的值,所以没法用就用了指针,但其实就

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             1000
My 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

相关文章

  • LeetCode - 013 - 罗马数字转整数(roman-to-integer

    摘要:字符数值例如,罗马数字写做,即为两个并列的。通常情况下,罗马数字中小的数字在大的数字的右边。给定一个罗马数字,将其转换成整数。 Create by jsliang on 2019-05-23 13:24:24 Recently revised in 2019-05-23 14:55:20 一 目录 不折腾的前端,和咸鱼有什么区别 目录 一 目录 二 前言 三 解题 ...

    v1 评论0 收藏0
  • 前端 | 每天一个 LeetCode

    摘要:在线网站地址我的微信公众号完整题目列表从年月日起,每天更新一题,顺序从易到难,目前已更新个题。这是项目地址欢迎一起交流学习。 这篇文章记录我练习的 LeetCode 题目,语言 JavaScript。 在线网站:https://cattle.w3fun.com GitHub 地址:https://github.com/swpuLeo/ca...我的微信公众号: showImg(htt...

    张汉庆 评论0 收藏0
  • leetcode部分题目答案之JavaScript版

    摘要:自己没事刷的一些的题目,若有更好的解法,希望能够一起探讨项目地址 自己没事刷的一些LeetCode的题目,若有更好的解法,希望能够一起探讨 Number Problem Solution Difficulty 204 Count Primes JavaScript Easy 202 Happy Number JavaScript Easy 190 Reverse Bi...

    alphahans 评论0 收藏0
  • [Leetcode] Roman to Integer and Integer to Roman

    摘要:正则表达式思路首先我们要熟悉罗马数的表达方式。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于,从千位到个位依次拆解。 Valid Roman Numeral 正则表达式 思路 首先我们要熟悉罗马数的表达方式。M是1000,D是500,C是100,L是50,X是10,V是5,I是1。验证字符串是否是罗马数,我们先看一下有效的罗马数是什么样的,假设该数字小于50...

    wdzgege 评论0 收藏0
  • leetcode 12 Integer to Roman

    摘要:题目详情题目的意思是输入一个阿拉伯数字,我们需要输出这个数字的罗马数字表示形式字符串。想法这道题最重要的点就是理解罗马数和阿拉伯数之间的转换规律。 题目详情 Given an integer, convert it to a roman numeral.Input is guaranteed to be within the range from 1 to 3999.题目的意思是: 输...

    wqj97 评论0 收藏0

发表评论

0条评论

wizChen

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<