Leetcode算法课程第七周作业
来源:互联网 发布:java字符串金额格式化 编辑:程序博客网 时间:2024/06/06 20:00
Leetcode算法课程第七周作业
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.
给定一个罗马数字,把它转变成一个整型,罗马数字的范围在1到3999
题目分析
首先罗马数字有7个符号
I — 1
V — 5
X — 10
L — 50
C — 100
D — 500
M — 1000
罗马数字有两个特点
一个数字重复出现几次就是这个数的几的倍数
右加左减原则: 一个较大的数的右边放一个小的数,就是这两个数的和,否则就是两个数的差。
给定任意一个罗马数字,我们从最后一个字符开始,向左边方向依次比较当前字符和相邻字符的相对大小,如果满足右加,则result加上当前字符对应的十进制值,如果满足左减,则result减去当前值
class Solution {public: int romanToInt(string s) { map<char, int> roman; roman.insert(pair<char, int>('I', 1)); roman.insert(pair<char, int>('V', 5)); roman.insert(pair<char, int>('X', 10)); roman.insert(pair<char, int>('L', 50)); roman.insert(pair<char, int>('C', 100)); roman.insert(pair<char, int>('D', 500)); roman.insert(pair<char, int>('M', 1000)); int len = s.size(); int result = roman[s[len - 1]]; int pivot = result; for (int i = len - 2; i >= 0; i--) { int curr = roman[s[i]]; if (curr < pivot) { //左减 result -= curr; } else { result += curr; } pivot = curr; } return result; }};
阅读全文
0 0
- Leetcode算法课程第七周作业
- 算法课程第六周Leetcode作业
- 算法分析与设计课程作业第七周#1#2
- [leetcode]第七周作业
- 第七周算法作业
- 算法课程Leetcode作业第二周技术博客
- 算法课程Leetcode作业第三周技术博客
- 算法概论 第七周作业
- 算法概论第七周作业
- 算法第七周作业01
- Leetcode 55 Jump Game(第七周作业)
- 算法课程Leetcode作业第一周技术博客
- 算法课程Leetcode作业第四周技术博客
- 第七周算法作业,背包问题
- 第七周作业——背包算法
- 第七周作业——背包算法 .
- 算法作业_12(2017.4.5第七周)
- 算法作业_13(2017.4.6第七周)
- 安卓学习之SQLite+ListView完成一个通讯录
- BootLoader学习
- spring异常org.springframework.beans.factory.NoSuchBeanDefinitionException
- git使用总结(一)
- static关键字[java7高级进阶]
- Leetcode算法课程第七周作业
- linux常用命令整理
- 51 nod 1705 七星剑(概率dp)
- 日记(周末)
- 一些经常要用到的网站及搜索关键词
- spring data jpa 错误 Not an managed type: class java.lang.Object
- 泛型类
- DataBinding使用介绍
- Java多线程编程入门一