LeetCode-13. Roman to Integer
来源:互联网 发布:linux火狐设置中文 编辑:程序博客网 时间:2024/05/16 07:05
问题:https://leetcode.com/problems/roman-to-integer/?tab=Description
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.
给一个罗马数字,把它转为整数。输入的数是1到3999之间。
分析:罗马数字:I=1 V=5 X=10 L=50 C=100 D=500 M=1000
相同的数字连写表示数值相加;小的数字在大的数字后面,表示大数字加小数字;小数字在大数字前面,表示大数字减小数字。
从第一个字符开始,先看成是加法的,比较当前值与前一个值的大小,如果当前值比前一个值小,加上当前值。如果当前值比前一个值大,说明前一个值应该是负的,又因为计算前一个值的时候已经加上了一个,所以现在要减去两个前一位的值再加上当前位的值。
C++代码:
class Solution {private: int save[255]; void init(){ save['I']=1;save['V']=5;save['X']=10;save['L']=50;save['C']=100;save['D']=500;save['M']=1000; }public: int romanToInt(string s) { init(); int sum=save[s[0]]; int l=s.length(); for(int i=1;i<l;i++){ int cur=save[s[i]]; int pre=save[s[i-1]]; if(cur>pre){ sum+=cur-2*pre; } else{ sum+=cur; } } 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
- ubuntu 16.04 启用root用户方法 ,并可以ssh远程root用户登录
- kubernetes 1.4 集群
- oracle生成AWR报告
- 获取手机联系人以及手机短信。
- codelab
- LeetCode-13. Roman to Integer
- PHPStorm单词拼写纠正提示设置
- 链接
- 粒子群优化算法
- 博客搬迁至CSDN
- 搭建稳定的开发测试环境
- 第一行代码_笔记
- gulp+browser-sync使用方法
- Linux常用命令