LeetCode 13. Roman to Integer
来源:互联网 发布:怎样加入淘宝客服 编辑:程序博客网 时间:2024/06/10 16:17
Roman to Integer
题目要求:给出一个罗马数字,要求转化为整型数字。
题目给出的框架如下:
class Solution {public: int romanToInt(string s) { }};
先验知识:
下面为罗马数字与阿拉伯数字的对照表:
解题思路
罗马数字从右往左数,碰到更大的数就相加,碰到更小的数就相减。如上面所给的例子:DCXXI,从I开始,碰到的数越来越大,所以结果为:1+10+10+100+500=621。
之所以从右边开始算,而不从左边开始算,是因为规则简单,即:碰到更大的则相加,碰到更小的则相减。如果是从左边算的话,则碰到较大的数需要寻找左边不小于该数的数字。如例2所示:MXD,当碰到D的时候,需要找到不小于D的数字M,计算XD之后才能得到MXD。
代码实现如下:
class Solution {public: int romanToInt(string s) { map<char, int> val; val['I'] = 1; val['V'] = 5; val['X'] = 10; val['L'] = 50; val['C'] = 100; val['D'] = 500; val['M'] = 1000; int sum = val[s[s.length() - 1]]; for (int i = s.size() - 2; i >= 0; --i) { if (val[s[i]] < val[s[i + 1]]) sum -= val[s[i]]; else sum += val[s[i]]; } return sum; }};
阅读全文
0 0
- LeetCode 13. Roman to Integer
- [LeetCode]13.Roman to Integer
- LeetCode --- 13. Roman to Integer
- [Leetcode] 13. Roman to Integer
- [leetcode] 13.Roman to Integer
- leetcode 13. Roman to Integer
- leetcode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- [LeetCode]13. Roman to Integer
- Leetcode 13. Roman to Integer
- leetcode 13. Roman to Integer
- leetcode 13. Roman to Integer
- LeetCode *** 13. Roman to Integer
- LeetCode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- 【LeetCode】13. Roman to Integer
- Leetcode 13. Roman to Integer
- LeetCode 13. Roman to Integer
- HTM基本内容
- 《css揭秘》学习笔记(二)
- python爬取新浪微博内容
- 月相的形成原理
- PHPstorm一些常用的快捷键
- LeetCode 13. Roman to Integer
- Host Profiles Management使用
- stm32完美驱动1.77寸oled裸屏
- jsp生成json并传递给前台html解析后显示传递的信息
- 斯密特正交化进行QR分解
- PAT甲级 1120. Friend Numbers (20)
- hihocoder Challenge 29 A.序列的值
- java GMT时间转换为CST时间
- 对于所有对象都通用的方法