Roman to Integer
来源:互联网 发布:捕食者算法 编辑:程序博客网 时间:2024/06/06 17:42
罗马数字中基本数字:Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。
组成数的规则:
1、相同的数字连写,所表示的数等于这些数字相加得到的数,如 Ⅲ=3;
2、小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如 Ⅷ=8、Ⅻ=12;
3、小的数字(限于 Ⅰ、X 和 C)在大的数字的左边,所表示的数等于大数减小数得到的数,如 Ⅳ=4、Ⅸ=9;
4、在一个数的上面画一条横线,表示这个数增值 1,000 倍
class Solution(object): def romanToInt(self, s): """ :type s: str :rtype: int """ index = 0 d = {'I':1,'V':5,'X':10,'L':50,'C':100,'D':500,'M':1000} num = 0 while( index < len(s)-1 ): #前后字符连起来才能确定数字大小的情况,对应组成数规则的第三条 if( d[s[index]] < d[s[index+1]] ): num = num+d[s[index+1]]-d[s[index]] index=index+2 #对应组数规则的前两条 else: num=num+d[s[index]] index=index+1 #若s的最后两位符合前两条规则,则循环没有加上最后一个字符所代表的数字 if( index == len(s)-1 ): num=num+d[s[index]] return num
一开始程序运行时间252s,看到大神写的代码(这点leetCode做的不错),就做了修改,运行时间降下来了。主要修改的代码:对dict数据的访问,由dictName.get(keyName)改为dictName[keyName]。运行时间减少了一半左右。
阅读全文
0 0
- Integer to Roman & Roman to Integer
- Integer to Roman & Roman to Integer
- LeetCode Roman to Integer && Integer to Roman
- 【leetcode】Roman to Integer | Integer to Roman
- Leetcode - "Roman to Integer" & "Integer to Roman"
- LeetCode:Roman to Integer,Integer to Roman
- Integer to Roman and Roman to Integer
- LeetCode Integer to Roman & Roman to Integer
- Roman to Integer/Integer to Roman
- leetcode - roman to integer & integer to roman
- "Roman to Integer" and "Integer to Roman"
- Roman to Integer &&Integer to Roman
- Roman to Integer and Integer to Roman
- Roman to Integer/Integer to Roman
- LeetCode:Roman to Integer
- LeetCode: Integer to Roman
- LeetCode: Roman to Integer
- LeetCode Integer to Roman
- 使用virt-install手动创建qcow2镜像并安装ISO
- STL中的multimap---顺便说说如何查找同一关键字对应的所有值
- 深度学习与计算机视觉系列(10)_细说卷积神经网络
- 列表与按钮
- Java菜鸟学习日记6
- Roman to Integer
- 【JSP页面】富文本编辑器的使用
- 学Android Space控件,只看这篇文章就行了
- Parzen窗估计
- Spring注解@Component、@Repository、@Service、@Controller
- 深度学习与计算机视觉(11)_基于deep learning的快速图像检索系统
- Oracle能修改数据表中的列(字段)顺序吗
- Python SQLAlchemy ORM示例
- Canvas绘制图片模糊