Roman to Integer
2016-06-12 16:04
190 查看
c++
class Solution { public: int romanToInt(string s) { if (s.empty()) return 0; unordered_map<char, int> dict = { { 'I' , 1 },{ 'V' , 5 }, { 'X' , 10 },{ 'L' , 50 },{ 'C' , 100 },{ 'D' , 500 },{ 'M' , 1000 } }; int cum = dict[s.back()]; for (int i = s.size() - 2; i >= 0; --i) { if (dict[s[i]] < dict[s[i + 1]]) cum -= dict[s[i]]; else cum += dict[s[i]]; } return cum; } };
python
class Solution(object): def romanToInt(self, s): """ :type s: str :rtype: int """ if not s: return 0 dict = {'M':1000, 'D':500, 'C':100, 'L':50, 'X':10, 'V':5, 'I':1} s = list(s) cum = dict[s[-1]] for i in xrange(len(s)-2,-1,-1): if dict[s[i]] < dict[s[i+1]]: cum -= dict[s[i]] else: cum += dict[s[i]] return cum
reference:
https://leetcode.com/discuss/22867/clean-o-n-c-solution
相关文章推荐
- 如何组织构建多文件 C 语言程序(二)
- 如何写好 C main 函数
- Lua和C语言的交互详解
- 关于C语言中参数的传值问题
- 简要对比C语言中三个用于退出进程的函数
- 深入C++中API的问题详解
- 基于C语言string函数的详解
- C语言中fchdir()函数和rewinddir()函数的使用详解
- C语言内存对齐实例详解
- C语言编程中统计输入的行数以及单词个数的方法
- C语言自动生成enum值和名字映射代码
- C语言练习题:自由落体的小球简单实例
- 使用C语言判断英文字符大小写的方法
- c语言实现的带通配符匹配算法
- C语言实现顺序表基本操作汇总
- C语言中进制知识汇总
- C语言判断一个数是否是2的幂次方或4的幂次方
- C语言中计算正弦的相关函数总结
- 使用C语言详解霍夫曼树数据结构
- C语言实现选择排序、冒泡排序和快速排序的代码示例