zoukankan      html  css  js  c++  java
  • LeetCode:12. Roman to Integer (Easy)

    1. 原题链接

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

    2. 题目要求

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

    3. 关于罗马数字

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

    4. 解题思路

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

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

    5. 代码实现

     2 
     3 public class RomantoInteger13 {
     4     public static void main(String[] args) {
     5         System.out.println(RomantoInteger13.romanToInt("MDCCCLXXXIV"));
     6     }
     7     public static int romanToInt(String s) {
     8         int count = 0;
     9         for(int i = s.length()-1;i>=0;i--){
    10             char c = s.charAt(i);
    11             switch (c){
    12                 case 'I':
    13                     count += (count>=5?-1:1);
    14                     break;
    15                 case 'V':
    16                     count +=5;
    17                     break;
    18                 case 'X':
    19                     count+=(count>=50?-10:10);
    20                     break;
    21                 case 'L':
    22                     count+=50;
    23                     break;
    24                 case 'C':
    25                     count+=(count>=500?-100:100);
    26                     break;
    27                 case 'D':
    28                     count+=500;
    29                     break;
    30                 case 'M':
    31                     count+=1000;
    32                     break;
    33             }
    34 
    35         }
    36 
    37         return count;
    38 
    39     }
    40 }
  • 相关阅读:
    获取deeplearning电子书
    iterm2 粘贴时有多余字符 0~ 1~
    linux mint使用中的问题解决记录
    column命令
    命令行中画图
    sphinx转pdf显示中文
    linux查看显卡
    python 3.6
    Mac笔记本中使用postgresql
    计算KS值的标准代码
  • 原文地址:https://www.cnblogs.com/huiAlex/p/8072042.html
Copyright © 2011-2022 走看看