【一天一道LeetCode】#13. Roman to Integer
2016-04-08 15:45
369 查看
一天一道LeetCode系列
(一)题目
Given a roman numeral, convert it to an integer.
Input is guaranteed to be within the range from 1 to 3999.
(二)解题
和上一题相反,这题将罗马数字转换成整形数。注意到 4,9,40,90,400,900这些特殊的数字的区别就不难写出代码了。
class Solution { public: int romanToInt(string s) { int ret=0; for(auto iter = s.begin() ; iter!=s.end() ; ++iter) { if((iter+1)!=s.end() && tonum(*iter) < tonum(*(iter+1))) { ret += tonum(*(iter+1))-tonum(*iter); ++iter; } else ret += tonum(*iter); } return ret; } int tonum(char ch) { switch(ch) { case 'I' : return 1; case 'V' : return 5; case 'X' : return 10; case 'L' : return 50; case 'C' : return 100; case 'D' : return 500; case 'M' : return 1000; } } };
相关文章推荐
- ToolBar控件去除默认的左边距
- 【一天一道LeetCode】#13. Roman to Integer
- Apple Pay接入
- 由微信群中的一道小问题引发的同余方程计算机解法
- 对Django框架架构和Request/Response处理流程的分析 | 疯狂的蚂蚁
- gcc指定头文件路径及动态链接库路径
- DSHTTPService
- Linux 进程创建
- spring MVC 配置错误
- Opencv2.4.9源码分析——HoughCircles
- 关于制作网页时乱码的问题详解
- hdoj 1437 天气情况 【打表模拟】
- git push到github报:fatal: HTTP request failed 的可能原因
- 结对项目
- 汉堡--结对--软件工程
- 一步一步安装Git控件版本工具
- linux 命令前后台切换
- iOS app打包 -- 生成ipa测试包 步骤详解
- 关于解Bug的总结
- c++ 字符类型转换