首页 > 其他分享 >leetcode面试经典150题-13. 罗马数字转整数

leetcode面试经典150题-13. 罗马数字转整数

时间:2024-08-16 22:51:20浏览次数:13  
标签:case 150 13 ++ len else && total leetcode

https://leetcode.cn/problems/roman-to-integer/description/?envType=study-plan-v2&envId=top-interview-150

 

GO

package leetcode150

import "testing"

/*
    romanMap := map[string]int{
            "I": 1,
            "V": 5,
            "X": 10,
            "L": 50,
            "C": 100,
            "D": 500,
            "M": 1000,
        }
*/
func TestRomanToInt(t *testing.T) {
    s := "MCMXCIV"
    res := romanToInt(s)
    println(res)
}

func romanToInt(s string) int {
    total := 0
    for i := 0; i < len(s); i++ {
        switch s[i] {
        case 'I':
            if i+1 < len(s) && s[i+1] == 'V' {
                total += 4
                i++
            } else if i+1 < len(s) && s[i+1] == 'X' {
                total += 9
                i++
            } else {
                total += 1
            }
        case 'V':
            total += 5
        case 'X':
            if i+1 < len(s) && s[i+1] == 'L' {
                total += 40
                i++
            } else if i+1 < len(s) && s[i+1] == 'C' {
                total += 90
                i++
            } else {
                total += 10
            }
        case 'L':
            total += 50
        case 'C':
            if i+1 < len(s) && s[i+1] == 'D' {
                total += 400
                i++
            } else if i+1 < len(s) && s[i+1] == 'M' {
                total += 900
                i++
            } else {
                total += 100
            }
        case 'D':
            total += 500
        case 'M':
            total += 1000
        }
    }
    return total
}

 

标签:case,150,13,++,len,else,&&,total,leetcode
From: https://www.cnblogs.com/MoonBeautiful/p/18363772

相关文章

  • [20240813]跟踪sqlplus登录执行了什么5(21c).txt
    [20240813]跟踪sqlplus登录执行了什么5(21c).txt--//跟踪看看sqlplus21c版本访问数据库21c时,在执行用户调用命令前执行一些什么sql语句。1.环境:[email protected]:1521/book>@prxx==============================PORT_STRING                  :x86_64/L......
  • leetcode前缀和(2438. 二的幂数组中查询范围内的乘积)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。描述给你一个正整数 n ,你需要找到一个下标从 0 开始的数组 powers ,它包含 最少 数目的 2 的幂,且它们的和为 n 。powers 数组是 非递减 顺序的。根据前面描述,构造......
  • leetcode线段树(2940. 找到 Alice 和 Bob 可以相遇的建筑)
    前言经过前期的基础训练以及部分实战练习,粗略掌握了各种题型的解题思路。现阶段开始专项练习。描述给你一个下标从 0 开始的正整数数组 heights ,其中 heights[i] 表示第 i 栋建筑的高度。如果一个人在建筑 i ,且存在 i<j 的建筑 j 满足 heights[i]<heig......
  • 力扣面试经典算法150题:找出字符串中第一个匹配项的下标
    找出字符串中第一个匹配项的下标今天的题目是力扣面试经典150题中的数组的简单题:找出字符串中第一个匹配项的下标题目链接:https://leetcode.cn/problems/find-the-index-of-the-first-occurrence-in-a-string/description/?envType=study-plan-v2&envId=top-interview-......
  • Leetcode刷题笔记8.12-8.16
    Leetcode刷题笔记8.12-8.1619.删除倒数第n个链表结点(8.12)一个巧妙删除倒数第n个结点的trick该方法避免了对链表的一次全面扫描来获得总长度//返回链表的倒数第k个节点ListNodefindFromEnd(ListNodehead,intk){ListNodep1=head;//p1先走k步......
  • CF1503E 2-Coloring
    CF1503E2-Coloring题目大意略过。做法解析不会组合,使用了DP,但其实本质相同。我们假设所有的格子都是蓝色的,然后考虑将一些格子换成黄色的。我们考虑从每一行的两头开始将格子换成黄色,只要不把整一行都换成黄色的我们就可以保证每一行恰好有一段蓝色的格子。为了保证每一......
  • 【问题记录】【Apache Camel】Apache Camel 报 413Request Entity Too Large
    1 前言ApacheCamel不知道大家有没有用过。它是一个基于企业应用集成模式(EIP)的强大开源集成框架。能够快速、轻松地集成,用于在各种系统之间消费或生产数据。说白了可以用于系统之间的不同方式的交互支撑。最近出现一个问题,来记录一下。2 问题现象有客户反应说一个单子卡......
  • arc137
    a:有点神经首先贪心让y尽可能大,x尽可能小,那么我们用两层循环,y从大往小枚举,x从小往大枚举,再大力剪下枝,根据质数的稠密性,这个复杂度是有保证的。不过自己的感觉也大差不差by官方自\(\gcd(L,L+1)=1\)起,总有一个解。我们只需按\((y-x)\)的递减顺序尝试\(L\leqx,y\leq......
  • 11. 盛最多水的容器【 力扣(LeetCode) 】
    一、题目描述给定一个长度为n的整数数组height。有n条垂线,第i条线的两个端点是(i,0)和(i,height[i])。找出其中的两条线,使得它们与x轴共同构成的容器可以容纳最多的水。返回容器可以储存的最大水量。说明:你不能倾斜容器。二、测试用例示例1:输入:[1,......
  • 15. 三数之和【 力扣(LeetCode) 】
    一、题目描述给你一个整数数组nums,判断是否存在三元组[nums[i],nums[j],nums[k]]满足i!=j、i!=k且j!=k,同时还满足nums[i]+nums[j]+nums[k]==0。请你返回所有和为0且不重复的三元组。注意:答案中不可以包含重复的三元组。二、测试用例示例1:输......