zoukankan      html  css  js  c++  java
  • leetcode 136:roman-to-integer&&leetcode 137:integer-to-roman

    按我的看法来说这两个题实在没啥意思,所以写一块了。需要了解一下罗马数字和整数之间的转换规则即可。

    leetcode 136:

    题目描述

    请将给出的罗马数字转化为整数
    保证输入的数字范围在1 到 3999之间。
    代码如下:
     1  int romanToInt(string s) {
     2         std::map<char, int> m = { {'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000} };
     3         int n = s.size();
     4         int sum = m[s.back()];
     5         for (int i = n - 2; i >= 0; i--)
     6         {
     7             if(m[s[i]] < m[s[i+1]])
     8                 sum -= m[s[i]];
     9             else
    10                 sum = sum + m[s[i]];
    11         }
    12         return sum;
    13     }

    leetcode 137:

    题目描述

    请将给出的整数转化为罗马数字
    保证输入数字的范围在1 到 3999之间。
    代码如下:
     1 string intToRoman(int num) {
     2         string str;
     3         vector<int>m={1,4,5,9,10,40,50,90,100,400,500,900,1000};
     4         vector<string>n={"I","IV","V","IX","X","XL","L","XC","C","CD","D","CM","M"};
     5          for(int i=m.size()-1;i>=0;){
     6             if(num>=m[i]){
     7               str+=n[i];
     8               num=num-m[i];
     9             }
    10             else{
    11               i--;
    12             }
    13          }
    14         return str;
    15     }
  • 相关阅读:
    CF140CNew Year Snowmen
    ZR10.1青岛集训三地联考
    CF1228——记一次和紫名失之交臂的CF
    CF1220
    codeforce 382 div2 E —— 树状dp
    codeforce 381 div2
    codeforce 380(div.2)
    Bishops Alliance—— 最大上升子序列
    codeforce 379(div.2)
    模板——BigInteger
  • 原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13490191.html
Copyright © 2011-2022 走看看