Leetcode35: Roman to Integer

2024-08-28 19:58
文章标签 integer leetcode35 roman

本文主要是介绍Leetcode35: Roman to Integer,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Given a roman numeral, convert it to an integer.

Input is guaranteed to be within the range from 1 to 3999.

罗马数字规则:

1, 罗马数字共有7个,即I(1)、V(5)、X(10)、L(50)、C(100)、D(500)和M(1000)。

罗马数字中没有“0”。

2, 重复次数:一个罗马数字最多重复3次。

3, 右加左减:

在较大的罗马数字的右边记上较小的罗马数字,表示大数字加小数字。

在较大的罗马数字的左边记上较小的罗马数字,表示大数字减小数字。

4, 左减的数字有限制,仅限于I、X、C,且放在大数的左边只能用一个。

(*) V 和 X 左边的小数字只能用Ⅰ。

(*) L 和 C 左边的小数字只能用X。

(*) D 和 M 左 边的小数字只能用C。

class Solution {
public:int romanToInt(string s) {map<char, int> dct;dct['I'] = 1;dct['V'] = 5;dct['X'] = 10;dct['L'] = 50;dct['C'] = 100;dct['D'] = 500;dct['M'] = 1000;int sum = 0, j;for(int i = 0; i < s.size(); ++i){j = i+1;if(j < s.size() && dct[s[j]] > dct[s[i]]){sum += dct[s[j]] - dct[s[i]];i = j;}elsesum += dct[s[i]];}return sum;}
};


转载地址:http://www.tuicool.com/articles/fUVNJb

这篇关于Leetcode35: Roman to Integer的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1115739

相关文章

如何简便的将List<Integer>转换成int[]?

使用Java 8的流(Streams)  ArrayList<Integer> list = new ArrayList<>();int[] intArray = list.stream().mapToInt(Integer::intValue).toArray();  若是maven项目可使用Apache Commons Lang库 <dependency> <groupId>

[LeetCode] 7. Reverse Integer

题:https://leetcode.com/problems/reverse-integer/description/ 题目 Given a 32-bit signed integer, reverse digits of an integer. Example 1: Input: 123Output: 321Example 2:Input: -123Output: -321Ex

LeetCode - 12. Integer to Roman

12. Integer to Roman  Problem's Link  ---------------------------------------------------------------------------- Mean:  将一个int型的整数转化为罗马数字. analyse: 没什么好说的,直接维基百科. Time complexity: O(

带小数的String转整数Integer

其实String和Integer、Float、Double等相互转换这都很容易。可是带小数的String转Float、Double可能会出现“模糊数字”。 那么怎么避免呢?见下实例和结论。 System.out.println("**********2.4***********");String a = "2.4"; System.out.println(a); // 2.4System.o

Insertion Sort Integer Array Insertion Sort Linked List

Sort Integer Array using Insertion sort. //********************************************************************************************************/* Insertion Sort 原理:就是前面的sort部分全部是相对值,从后面拿一个元素,然后跟

Subtract the Product and Sum of Digits of an Integer

Given an integer number n, return the difference between the product of its digits and the sum of its digits. Example 1: Input: n = 234Output: 15 Explanation: Product of digits = 2 * 3 * 4 = 24

Redis的incr命令引发的反序列化异常和ERR value is not an integer or out of range异常

在Java中使用inc命令的时候发现redis中的值被反序列化后居然不是数字,检查后发现可能是序列化器没对,在redis配置的地方将序列化器设置为 Jackson2JsonRedisSerializer后使用整成,贴上代码 @Bean(name = "RedisTemplate")@SuppressWarnings("all")public RedisTemplate<String,

java 2.6** Summing the digits in an integer

例如 : 999 process: sum=9+9+9=27; 例如 : 932 process: sum=9+3+2=14;   import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner input=new Scanner(System.in);int

Integer的自动装箱过程

先来看道题  int  a=100;  int  b=100;  Integer  c=a;  Integer  d=b;  System.out.println(a==b);  System.out.println(c==d); 其实这道题  和  a 与  b 没有什么关系,可以直接看成   Integer c=100;   Integer d=100; System.out.

new Integer(1) 与 Integer.valueOf(1) 的区别

new Integer(1) 与 Integer.valueOf(1) 的区别 new Integer(1) 与 Integer.valueOf(1) new Integer(1) :会新建一个对象; Integer.valueOf(1) :使用对象池中的对象,如果多次调用,会取得同一个对象的引用。 对象池机制 为了提高性能,Java 在 1.5 以后针对八种基本类型的包装类,提供了和 St