【LeetCode】13. Roman to Integer && 12. Integer to Roman
来源:互联网 发布:java中文gbk编码转换 编辑:程序博客网 时间:2024/05/22 17:14
13. Roman to Integer
介绍
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
解答
class Solution {public: // 在保证输入内容合法的情况下,如下操作进行Roman 到 Int的转换 int romanToInt(string s) { if(s.empty()) return 0; unordered_map<char,int> romToInt{{'I',1},{'V',5},{'X',10},{'L',50},{'C',100},{'D',500},{'M',1000},}; int i = 0; int res = 0; while(i < s.size()-1) { if(romToInt[s[i]] >= romToInt[s[i+1]]) { res += romToInt[s[i]]; ++i; }else { res += romToInt[s[i+1]] - romToInt[s[i]]; i += 2; } } if(i == s.size() - 1) {res += romToInt[s[i]];} return res; }};
12. Integer to Roman
介绍
Given an integer, convert it to a roman numeral.
Input is guaranteed to be within the range from 1 to 3999.
解答
class Solution {public: string intToRoman(int num) { vector<pair<char,char>> romans; romans.push_back(make_pair('I','V')); romans.push_back(make_pair('X','L')); romans.push_back(make_pair('C','D')); romans.push_back(make_pair('M','M')); string res; int base = 1000, index = 3; while(index >= 0) { int val = num/base; switch(val) { case(1): case(2):case(3): { while(val-- > 0) res.push_back(romans[index].first); break; } case(4): { res.push_back(romans[index].first); res.push_back(romans[index].second); break; } case(5): { res.push_back(romans[index].second); break; } case(6): case(7): case(8): { res.push_back(romans[index].second); val -= 5; while(val-- > 0) res.push_back(romans[index].first); break; } case(9): { res.push_back(romans[index].first); res.push_back(romans[index+1].first); } default: break; } num = num % base; base = base/10; --index; } return res; }};
阅读全文
0 0
- LeetCode 12. Integer to Roman & 13. Roman to Integer
- 【LeetCode】13. Roman to Integer && 12. Integer to Roman
- Leetcode 13. Roman to Integer & 12. Integer to Roman
- 【LeetCode】13. Roman to Integer && 12. Integer to Roman
- Leetcode #12. Integer to Roman & #13. Roman to Integer
- LeetCode 13. Roman to Integer和12. Integer to Roman
- LeetCode-12. Integer to Roman-13. Roman to Integer
- LeetCode Roman to Integer && Integer to Roman
- 【leetcode】Roman to Integer | Integer to Roman
- Leetcode - "Roman to Integer" & "Integer to Roman"
- LeetCode:Roman to Integer,Integer to Roman
- LeetCode Integer to Roman & Roman to Integer
- leetcode - roman to integer & integer to roman
- LeetCode 12. Integer to Roman
- [LeetCode]12.Integer to Roman
- LeetCode --- 12. Integer to Roman
- [Leetcode] 12. Integer to Roman
- [leetcode] 12.Integer to Roman
- 五大联赛积分榜查询工具
- C++ UpdateData()
- AngularJs 完美解决模板缓存 $templateCache
- ubuntu通过apt-get安装JDK8
- MongoDB(一)在CentOS7下安装和运行MongoDB
- 【LeetCode】13. Roman to Integer && 12. Integer to Roman
- 51Nod 1011 最大公约数GCD
- Java发展:各版本JDK新特性 JVM发展 Java技术应用发展
- Qt程序打包发布方法(使用官方提供的windeployqt工具)
- CSS的入门级
- file_get_contents("php://input")的使用方法
- 基于Dragonboard 410c的音乐储钱罐(一)
- 应用统计学与R语言实现学习笔记(十)——聚类分析
- C语言再学习 -- 详解C++/C 面试题 2