Leetcode 13 Roman to Integer (Python)
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Leetcode 13 Roman to Integer (Python),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2016字,纯文字阅读大概需要3分钟。
内容图文
![Leetcode 13 Roman to Integer (Python)](/upload/InfoBanner/zyjiaocheng/718/da6554f1f3884a359edb3dff9f1d5bbd.jpg)
Roman to Integer
Roman numerals are represented by seven different symbols: I, V, X, L, C, D and M.
Symbol Value
I 1
V 5
X 10
L 50
C 100
D 500
M 1000
For example, two is written as II in Roman numeral, just two one’s added together. Twelve is written as, XII, which is simply X + II. The number twenty seven is written as XXVII, which is XX + V + II.
Roman numerals are usually written largest to smallest from left to right. However, the numeral for four is not IIII. Instead, the number four is written as IV. Because the one is before the five we subtract it making four. The same principle applies to the number nine, which is written as IX. There are six instances where subtraction is used:
I can be placed before V (5) and X (10) to make 4 and 9.
X can be placed before L (50) and C (100) to make 40 and 90.
C can be placed before D (500) and M (1000) to make 400 and 900.
Given a roman numeral, convert it to an integer. Input is guaranteed to be within the range from 1 to 3999.
Example 1:
Input: “III”
Output: 3
Example 2:
Input: “IV”
Output: 4
Example 3:
Input: “IX”
Output: 9
Example 4:
Input: “LVIII”
Output: 58
Explanation: L = 50, V= 5, III = 3.
Example 5:
Input: “MCMXCIV”
Output: 1994
Explanation: M = 1000, CM = 900, XC = 90 and IV = 4.
解题思路
我们发现罗马数字有一个特点,就是4:IV,9:IX,也就是说每到各个位数上出现4或者9时,左边的罗马数字一定要比右边的小,比如1994 = MCMXCIV (百位出现9,CM = 900,C<M,XC=90,X<C,IV=4,I<V)。
所以面对这种情况,我们可以进行一个判断,如果当前的罗马数字要小于下一个罗马数字,那么我们就遇到了4或者9,所以我们可以减去这个罗马数字对应的阿拉伯数字,然后加上下一个罗马数字即可。
代码
class Solution:
def romanToInt(self, s):
"""
:type s: str
:rtype: int
"""
a = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000}
ans=0
for i in range(len(s)):
if i<len(s)-1 and a[s[i]]<a[s[i+1]]:
ans-=a[s[i]]
else:
ans+=a[s[i]]
return ans
结果
内容总结
以上是互联网集市为您收集整理的Leetcode 13 Roman to Integer (Python)全部内容,希望文章能够帮你解决Leetcode 13 Roman to Integer (Python)所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。