首页 > 其他分享 >LeetCode刷题笔记—13.罗马数字转整数

LeetCode刷题笔记—13.罗马数字转整数

时间:2022-11-23 20:58:56浏览次数:66  
标签:case 字符 13 return int 罗马数字 ans LeetCode 刷题

在此不再做题目描述。(该题链接:13. 罗马数字转整数 - 力扣(LeetCode)

在观察罗马数字时,我们可以发现计算罗马数字的技巧:

  可以设定一个初始值ans = 0,然后对罗马数字从左到右依次遍历字符:

    1.若右边字符小于当前字符,则 ans 加上当前字符;

    2.若右边字符大于等于当前字符,则 ans 减去当前字符;

  然后向右依次执行此操作。

  例如:XLIII

    X小于L,则ans = 0 - 10 = -10;

    L大于I,则ans = -10 + 50 = 40;

    I等于I,则ans = 40 + 1 = 41;

    I等于I,则ans = 41 + 1 = 42;

    I等于I,则ans = 42 + 1 = 43

  ·代码实现: 

class Solution {
    int numberRoman(String s){
        //return时就不用break了
        switch (s){
            case "I":
                return 1;

            case "V":
                return 5;

            case "X":
                return 10;

            case "L":
                return 50;

            case "C":
                return 100;

            case "D":
                return 500;

            case "M":
                return 1000;

        }
        return  0;
    }
   public int romanToInt(String s) { int ans = 0; for(int i = 0;i<s.length();i++){ int value = numberRoman(String.valueOf(s.charAt(i)));
        //charAt( )方法返回指定索引处的char值 if(i < s.length() - 1 &&value < numberRoman(String.valueOf(s.charAt(i + 1)))){ ans = ans - value; } else { ans = ans + value; } } return ans; } }

 

    

  

标签:case,字符,13,return,int,罗马数字,ans,LeetCode,刷题
From: https://www.cnblogs.com/Noob-Green-Hand/p/16919744.html

相关文章

  • js013-js分离的DOM操作
    <!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><title>Title</title></head><body><tableborder="1"><thead><tr>......
  • CF1392H ZS Shuffles Cards 题解
    linkDescription有\(n\)张数字牌以及\(m\)张鬼牌,有一个不可重集合\(S\),初始为空。不断执行以下操作:抽出一张牌,如果为数字牌,则加入\(S\)并移除。如果为鬼牌,如果......
  • 解读 K8s Pod 的 13 种异常
    作者:风敬本文篇幅超过7千字,通读全文大概需要20分钟。文章内容源自大量真实场景的沉淀和分析,建议收藏,以供查阅。在K8s中,Pod作为工作负载的运行载体,是最为核心的......
  • 解读 K8s Pod 的 13 种异常
    作者:风敬本文篇幅超过7千字,通读全文大概需要20分钟。文章内容源自大量真实场景的沉淀和分析,建议收藏,以供查阅。在K8s中,Pod作为工作负载的运行载体,是最为核心的一个资......
  • 算法4: LeetCode_K个节点的组内逆序调整
    最近一直都是链表的算法练习,今天刷的是LeetCode原题,还是关于链表的节点逆转,难度等级:Hard.首先看题目:给定一个单聊表的头节点head和一个正整数k,要求实现k个节点的小组内......
  • Leetcode 1360. 日期之间隔几天
    题目:请你编写一个程序来计算两个日期之间隔了多少天。日期以字符串形式给出,格式为YYYY-MM-DD,如示例所示。难度:简单题示例1:输入:date1="2019-06-29",date2="2019-......
  • 虚拟机软件VMware Fusion 13发布,增加了哪些新特性?
    macOS平台虚拟机软件VMwareFusion13Pro的正式版正式发布,新版本更新支持不少新特性,其中包括:支持macOSVentura13、支持虚拟TPM2.0模块与Windows11、支持在AppleSilico......
  • LeetCode[435] 无重叠区间
    https://leetcode.cn/problems/non-overlapping-intervals/description/线性dpTLEclassSolution{public:intf[200010];inta[200010];interaseOver......
  • 西门子1200,1500,300,400PLC编程软件,西门子博途博图TIA 13 V14 V15 V16 V17安装包。
     西门子博途博图TIA13V14V15V16V17安装包,西门子1200,1500,300,400PLC编程软件,永久使用。 下载安装包......
  • [LeetCode] 2133. Check if Every Row and Column Contains All Numbers
    An nxn matrixis valid ifeveryrowandeverycolumncontains all theintegersfrom 1 to n (inclusive).Givenan nxn integermatrix matrix,re......