• leetcode 13


    罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作数字、即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。
    记数的方法:
    1. 相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;
    2. 小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;
    3. 小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;
    4. 在一个数的上面画一条横线,表示这个数增值 1,000 倍,如
       
      =5000。


    思路:将罗马数字的每个字母按照顺序转换成整数存入数组中;然后按照上述规则操作数组,得到最后的结果。

    代码如下:

     1 class Solution {
     2 public:
     3     int romanToInt(string s) {
     4         int result = 0;
     5         int last = 0;
     6         vector<int> tag;
     7         int n = s.length();
     8         for(int i = 0; i < n; ++i)
     9         {
    10            switch (s[i])
    11            {
    12             case 'I':
    13                 tag.push_back(1);
    14                 break;
    15             case 'X':
    16                 tag.push_back(10);
    17                 break;
    18             case 'C':
    19                 tag.push_back(100);
    20                 break;
    21             case 'M':
    22                 tag.push_back(1000);
    23                 break;
    24             case 'V':
    25                 tag.push_back(5);
    26                 break;
    27             case 'L':
    28                 tag.push_back(50);
    29                 break;
    30             case 'D':
    31                 tag.push_back(500);
    32                 break;
    33            }
    34            result = result + tag[i];
    35         }
    36         for(int i = 0; i < n-1; ++i)
    37         {
    38             if(tag[i] == 1 || tag[i] == 10 || tag[i] == 100)
    39             {
    40                 if(tag[i] < tag[i+1])
    41                 {
    42                     result = result - 2 * tag[i];
    43                 }
    44             }
    45         }
    46         
    47         return result;
    48     }
    49 };
  • 相关阅读:
    [ZJOI2006]书架
    [NOI2005]维护数列
    Python 最佳实践
    python中使用多继承
    python 抽象类、抽象方法的实现
    30个有关Python的小技巧
    一行 Python 实现并行化 -- 日常多线程操作的新思路
    python日志模块logging
    在Python中怎么表达True
    有趣的库:pipe(类似linux | 管道)库
  • 原文地址:https://www.cnblogs.com/shellfishsplace/p/5832536.html
Copyright © 2020-2023  润新知