[LeetCode]13. 罗马数字转整数

罗马数字包含以下七种字符: 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 的范围内。

示例 1:

输入: “III” 输出: 3 示例 2:

输入: “IV” 输出: 4 示例 3:

输入: “IX” 输出: 9 示例 4:

输入: “LVIII” 输出: 58 解释: L = 50, V= 5, III = 3. 示例 5:

输入: “MCMXCIV” 输出: 1994 解释: M = 1000, CM = 900, XC = 90, IV = 4.

public class Solution {
    public int RomanToInt(string s) {
        int[] RomanNums = new int[128];
        RomanNums['I'] = 1;
        RomanNums['V'] = 5;
        RomanNums['X'] = 10;
        RomanNums['L'] = 50;
        RomanNums['C'] = 100;
        RomanNums['D'] = 500;
        RomanNums['M'] = 1000;

        char[] Romans = s.ToCharArray();
        int result = 0;
        for(int i = 0; i < Romans.Length; i++){
            if(i < Romans.Length-1){
                if(RomanNums[Romans[i]] < RomanNums[Romans[i+1]]){
                    result -= RomanNums[Romans[i]];
                }else{
                    result += RomanNums[Romans[i]];
                }
            }else{
                result += RomanNums[Romans[i]];
            }
        }

        return result;
    }
}

Original: https://www.cnblogs.com/donpangpang/p/13584285.html
Author: 胖纸不争
Title: [LeetCode]13. 罗马数字转整数

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/590591/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • JUC自定义线程池练习

    JUC自定义线程池练习 首先上面该线程池的大致流程 自定义阻塞队列 首先定义一个双向的队列和锁一定两个等待的condition 本类用lock来控制多线程下的流程执行 take和p…

    数据库 2023年6月11日
    095
  • 调试Archery连接SQL Server提示驱动错误

    当我们在调试Archery的时候,连接SQL Server 会报错,而MySQL部分没有问题。报错信息如下: Error: (‘01000’, "[01000] [uni…

    数据库 2023年6月16日
    0136
  • 如何干涉MySQL优化器使用hash join

    GreatSQL社区原创内容未经授权不得随意使用,转载请联系小编并注明来源。 GreatSQL是MySQL的国产分支版本,使用上与MySQL一致。 前言 实验 总结 前言 数据库的…

    数据库 2023年6月11日
    092
  • Volatile的学习

    首先先介绍三个性质 可见性 可见性代表主内存中变量更新,线程中可以及时获得最新的值。 下面例子证明了线程中可见性的问题 由于发现多次执行都要到主内存中取变量,所以会将变量缓存到线程…

    数据库 2023年6月11日
    063
  • MySQL实战45讲 4,5

    04 | 深入浅出索引(上) 索引的出现实际上是为了提高数据查询的效率,就像一本书的目录一样。 [En] The emergence of the index is actuall…

    数据库 2023年5月24日
    0100
  • 解决数据库报错Error 1390: Prepared statement contains too many placeholders的问题

    今天,当您开发一个项目时,您试图一次插入大量数据,但出现了以下错误: [En] Today, when you were developing a project, you tri…

    数据库 2023年5月24日
    0103
  • MySQL8.0其他新特性

    MySQL8.0其他新特性 MySQL8.0新特性概述 MySQL8.0新增特性 MySQL8.0移除的旧特性 新特性1:窗口函数 窗口函数的分类 MySQL8.0版本开始支持窗口…

    数据库 2023年5月24日
    078
  • mysql的半同步复制

    binlog dump线程何时向从库发送binlog mysql在server层进行了组提交之后,为了提高并行度,将提交阶段分为了 flush sync commit三个阶段,根据…

    数据库 2023年6月9日
    084
  • 算法-贪心思想

    算法-贪心思想 庭前看玉树,肠断忆连枝 一、剪绳子 1、题目描述 把一根绳子剪成多段,并且使得每段的长度乘积最大。 2、解题思路 尽可能得多剪长度为 3 的绳子,并且不允许有长度为…

    数据库 2023年6月14日
    0145
  • 记一次MySql唯一索引在left join连表查询没走索引的问题

    在新建一张账单结算信息表bill_settlement_info的时候,建立的唯一索引uk_bill_no(bill_no,tenant_id)。由于列表查询用到该表的字段。所以在…

    数据库 2023年6月16日
    073
  • 【黄啊码】MySQL入门—5、数据库小技巧:单个列group by就会,多个列呢?

    大家好!我是黄啊码,上节课留的作业大家都做了吗?没做的话回去做完再来听课。 好了,先来解答上节课留下的问题: 我们在数据库表中新增一列user_height表示身高,然后拿到所有数…

    数据库 2023年6月16日
    080
  • 高并发组件了解

    消息队列 A服务和多个服务耦合,内部维护对多个服务发送数据的接口,那么这些接口如果有的挂了,有的不需要了,那么还得修改A内部的代码,如果使用MQ,A发送消息就好,不必考虑那么多事情…

    数据库 2023年6月16日
    064
  • Docker下部署Spring Boot项目

    1.编写Docker File FROM openjdk:8-jdk-slim LABEL maintainer=ddzhan COPY target/*.jar /app.jar…

    数据库 2023年6月6日
    086
  • ConcurrentHashMap深入剖析(基于JDK1.7)

    1 package cn.com.pep.concurrent; 2 3 import java.util.concurrent.ConcurrentMap; 4 import j…

    数据库 2023年6月14日
    0106
  • 8、ThreadPoolTaskExecutor线程并发

    一、线程池的优点: 1、降低资源消耗。通过重复利用自己创建的线程降低线程创建和销毁造成的消耗。 2、提高响应速度。当任务到达时,任务可以不需要等到线程创建就能立即执行。 3、提高线…

    数据库 2023年6月6日
    090
  • 手写LRU缓存淘汰算法

    概述 LRU算法全称为 Least Recently Used是一种常见的页面缓存淘汰算法,当缓存空间达到达到预设空间的情况下会删除那些 最久没有被使用的数据 。 常见的页面缓存淘…

    数据库 2023年6月11日
    0126
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球