码迷,mamicode.com
首页 > 其他好文 > 详细

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

时间:2020-08-12 16:04:37      阅读:62      评论:0      收藏:0      [点我收藏+]

标签:strong   col   范围   数字   题目   char   turn   ring   describe   

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

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

标签:strong   col   范围   数字   题目   char   turn   ring   describe   

原文地址:https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13490191.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!