标签:10 string int sum roman num integer leetcode
按我的看法来说这两个题实在没啥意思,所以写一块了。需要了解一下罗马数字和整数之间的转换规则即可。
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 }
标签:10,string,int,sum,roman,num,integer,leetcode 来源: https://www.cnblogs.com/qingjiaowoxiaoxioashou/p/13490191.html
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。