leetcode 136:roman-to-integer&&leetcode 137:integer-to-roman

Posted 请叫我小小兽

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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     }

 

以上是关于leetcode 136:roman-to-integer&&leetcode 137:integer-to-roman的主要内容,如果未能解决你的问题,请参考以下文章

Leetcode-136 Single Number

leetcode 136

LeetCode 136. 只出现一次的数字

LeetCode 136. 只出现一次的数字

136. Single Number - LeetCode

LeetCode136 Single Number, LeetCode137 Single Number II, LeetCode260 Single Number III