6:Leetcode13:Roman to Integer笔记

Posted vlice

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了6:Leetcode13:Roman to Integer笔记相关的知识,希望对你有一定的参考价值。

1:题目描述

将罗马数字转为十进制阿拉伯数字

2:题目分析

①Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)

②罗马数字中表示最大值的字母左侧数字为负,右侧为正

③表示负数的字母最多重复一次

3:解体过程

 1 class Solution(object):
 2     def romanToInt(self, s):
 3         """
 4         :type s: str
 5         :rtype: int
 6         """
 7         s_len=len(s)
 8         sum=0
 9         i=0
10         roman={I:1,V:5,X:10,L:50,C:100,D:500,M:1000} #设置字典,便于取值
11         while i<s_len-1:
12             if roman[s[i]]<roman[s[i+1]]:#因为负值不重复,所以只比较紧邻的就可以了
13                 sum=sum-roman[s[i]]
14             else:
15                 sum=sum+roman[s[i]]
16             i=i+1
17         sum=sum+roman[s[s_len-1]]
18         return sum

4:解题感悟

发现负值不重复后代码就简洁很多了,想想自己期末考写的,真的很脑残呐┭┮﹏┭┮ 

以上是关于6:Leetcode13:Roman to Integer笔记的主要内容,如果未能解决你的问题,请参考以下文章

LeetCode13. Roman to Integer

Leetcode 13. Roman to Integer(python)

leetcode13. Roman to Integer

[LeetCode][13]Roman to Integer解析 罗马字符转int类型关于栈的常数实现-Java实现

[LeetCode][13]Roman to Integer解析 罗马字符转int类型关于栈的常数实现-Java实现

LeetCode 13. Roman to Integer