LeetCode: 011 - Roman to Integer
2016-01-06 01:22
323 查看
Roman to Integer
比较喜欢用到字符串处理的题我的解法
class Solution(object): roman = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000} def turn(self, s): roman = self.roman if len(s) == 1: return roman[s] else: return roman[s[-1]] - sum (map(lambda i: roman[i], s[:-1])) def romanToInt(self, s): """ :type s: str :rtype: int """ # roman = ['I', 'II', 'III', 'IV', 'V', 'VI', 'VII', 'VIII', 'IX', 'X'] roman = {'I':1, 'V':5, 'X':10, 'L':50, 'C':100, 'D':500, 'M':1000} # 3999 = 'M M M CM XC IX' # 3529 = 'M M M V X X IX' dList = [] i = 0 while i < len(s): j = 1 while j < 4: if i+j >= len(s): dList.append(s[i:i+j]) i += j break if roman[s[i + j -1]] == roman[s[i+j]] or \ roman[s[i + j - 1]] > roman[s[i+j]]: dList.append(s[i: i+j]) i += j break j += 1 #i += 1 return sum(map(self.turn, dList))
完全称得上是简单粗暴并且无脑。
因此效率非常差劲
题外话
这个是补1月2日的相关文章推荐
- Nginx 替换WEBRICK
- 秒杀多线程第二篇 多线程第一次亲密接触 CreateThread与_beginthreadex本质区别
- wchar_t是内置还是别名(亲测有效:wchar_t在windows下是16位整数的别名,在linux等平台下是32位整数的别名。MSVC2008开始默认是/Zc:wchar_t)
- Jenkins入门系列之
- Convert int/long to hex string.
- Mingw GCC pack Struct.
- HTML中input type="text"和type="password" 显示的长度不一样
- poj 2337 之 有向图 欧拉路径输出
- 将无序数列升序排列,并输出排列结果和排列后的下标
- [看书日记20160106]Activity的Flags , IntentFilter ,Android的消息机制
- HDU 1177."Accepted today?"【结构体排序(水)】【1月6】
- How MapReduce Works
- 静态分配和动态分配内存的区别
- IP学习
- Linux系统密钥验证(附件有实验过程和截图)
- windows 运行命令大全
- Android退出应用最优雅的方式(改进版)
- 转载的一篇关于vld的文章
- 2015年12月工作总结
- 远程链接服务器工具的使用