1. 原题链接

https://leetcode.com/problems/roman-to-integer/description/

2. 题目要求

(1)将罗马数字转换成整数;(2)范围1-3999;

3. 关于罗马数字

罗马数字相关规则已经在之前一篇博客里写过,这里不再赘述(之前博客的传送门

4. 解题思路

(1)这与之前第十二题Integer转换Roman虽然很相似,但处理方法并不相同。罗马数字更像是一个字符串,因此将其转换成字符数组进行处理。

(2)从后向前遍历一次,结合罗马数字的组合规则,根据该位置罗马数字之前位置累加起来的和进行大小比较,判断该位置是加还是减。

5. 代码实现

 public class RomantoInteger13 {
public static void main(String[] args) {
System.out.println(RomantoInteger13.romanToInt("MDCCCLXXXIV"));
}
public static int romanToInt(String s) {
int count = 0;
for(int i = s.length()-1;i>=0;i--){
char c = s.charAt(i);
switch (c){
case 'I':
count += (count>=5?-1:1);
break;
case 'V':
count +=5;
break;
case 'X':
count+=(count>=50?-10:10);
break;
case 'L':
count+=50;
break;
case 'C':
count+=(count>=500?-100:100);
break;
case 'D':
count+=500;
break;
case 'M':
count+=1000;
break;
} } return count; }
}

LeetCode:12. Roman to Integer (Easy)的更多相关文章

  1. 【leetcode】Integer to Roman & Roman to Integer(easy)

    Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...

  2. LeetCode:14. Longest Commen Prefix(Easy)

    1. 原题链接 https://leetcode.com/problems/longest-common-prefix/description/ 2. 题目要求 给定一个字符串数组,让你求出该数组中所 ...

  3. 「Leetcode」13. Roman to Integer(Java)

    分析 把具体的情况一个一个实现即可,没有什么幺蛾子. 代码 class Solution { public int romanToInt(String s) { int ans = 0; for (i ...

  4. LeetCode:35. Search Insert Position(Easy)

    1. 原题链接 https://leetcode.com/problems/search-insert-position/description/ 2. 题目要求 给定一个已经排好序的数组和一个目标值 ...

  5. Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用-um

    ylbtech-Java-Runoob-高级教程-实例-方法:12. Java 实例 – Enum(枚举)构造函数及方法的使用 1.返回顶部 1. Java 实例 - Enum(枚举)构造函数及方法的 ...

  6. LeetCode:40. Combination Sum II(Medium)

    1. 原题链接 https://leetcode.com/problems/combination-sum-ii/description/ 2. 题目要求 给定一个整型数组candidates[ ]和 ...

  7. Windows Phone本地数据库(SQLCE):12、插入数据(翻译)

    这是“windows phone mango本地数据库(sqlce)”系列短片文章的第十二篇. 为了让你开始在Windows Phone Mango中使用数据库,这一系列短片文章将覆盖所有你需要知道的 ...

  8. LeetCode:7. Reverse Integer(Easy)

    题目要求:将给出的整数进行逆序输出 注意:整数的最大范围-2147483648-2147483647,当翻转后的数超出范围后返回0 思路:对给出的整数除以10,取余和取整:然后对取整部分继续取余和取整 ...

  9. LeetCode:5. Longest Palindromic Substring(Medium)

    原题链接:https://leetcode.com/problems/longest-palindromic-substring/description/ 1. 题目要求:找出字符串中的最大回文子串 ...

随机推荐

  1. Python语言程序设计基础(7)—— 文件和数据格式化

    返回字符串 file = input() #返回字符串 fo = open(file,"r").read(6) print(fo) 返回列表形式 file = input() fo ...

  2. AQS(一) 对CLH队列的增强

    基本概念 AQS(AbstractQueuedSynchronizer),顾名思义,是一个抽象的队列同步器. 它的队列是先进先出(FIFO)的等待队列 基于这个队列,AQS提供了一个实现阻塞锁的机制 ...

  3. [转]关于VC++ MFC中的空闲Idle处理机制!

    关键词: 先根据空闲标志以及消息队列是否为空这两个条件判断当前线程是否处于空闲状态(这个“空闲”的含义同操作系统的含义不同,是MFC自己所谓的“空闲”),如果是,就调用CWinThread::OnId ...

  4. java随机数Reandom(简单介绍)

    简单介绍 Java中存在着两种Random函数 一.java.lang.Math.Random; 调用这个Math.Random()函数能够返回带正号的double值,该值大于等于0.0且小于1.0, ...

  5. 提高mapreduce性能的七点建议

    Cloudera提供给客户的服务内容之一就是调整和优化MapReduce job执行性能.MapReduce和HDFS组成一个复杂的分布式系统,并且它们运行着各式各样用户的代码,这样导致没有一个快速有 ...

  6. he lover you 用python 搞为 eh revol uoy 。

    1.字符串序列翻转  ----   字符串切片 a_str = “abc”[::-1] 2.字符串分割: b_str  = ‘ ds fdf  ds ’ b_str .split(" 空格& ...

  7. c#本地缓存实现

    用了一段时间java,java实现服务端程序很简单,有很多公共开源的组件或者软件.但是c#的很少. 现在准备自己写点东西,学习下新的东西,总结下c#的内容以及我们经常用的内容,抽离成类,组件,模型.方 ...

  8. HTTP基本内容

    *********************HTTP基本交互*************************** HTTP请求格式:HTTP 请求由三部分组成:请求行.请求头和请求正文请求行: 请求方 ...

  9. 在Python中使用正则表达式去掉字符串里的html标签

    有时候会获得一些带html标签的字符串,需要把html标签去掉,获得干净的字符串,这时候可以使用正则表达式. 代码如下: import re htmeString = '''<ul id=&qu ...

  10. iOS 开发中保留小数问题

    保留两位小数(四舍五入) - (void)viewDidLoad { [super viewDidLoad]; // 有时候我们需要对数据保留两位小数,而且需要四舍五入,并且需要把末尾多余的0给去掉\ ...