3月3日(5) Roman to Integer
2014-03-03 19:53
211 查看
原题 Roman to Integer
题意很简单,把Roman字母翻译成int。
实现方式也不难,针对每个字符转成int,从右往左,依次判断,如果当前值比上一个值大则相加,小则相减。
什么,你问我怎么想到的,看Roman的定义,写着写着就想出来了,注意19的Roman为 XIX,从右往左处理比较方便。
题意很简单,把Roman字母翻译成int。
实现方式也不难,针对每个字符转成int,从右往左,依次判断,如果当前值比上一个值大则相加,小则相减。
什么,你问我怎么想到的,看Roman的定义,写着写着就想出来了,注意19的Roman为 XIX,从右往左处理比较方便。
class Solution { public: int romanToInt(string s) { int ret = 0; int last_t = 0; for (int i = s.length()-1; i>=0; --i) { int t; switch(s[i]) { case 'I': t = 1; break; case 'V': t = 5; break; case 'X': t = 10; break; case 'L': t = 50; break; case 'C': t = 100; break; case 'D': t = 500; break; case 'M': t = 1000; break; default: t = 0; } if (last_t <= t) { ret += t; } else { ret -= t; } last_t = t; } return ret; } };
相关文章推荐
- 谈谈Memcached与Redis
- Android SD卡路径问题以及如何获取SDCard 内存
- Vim的设置和使用——编程者
- 数据建模基础理论 – 数据建模及规范化(1)
- Servlet
- Android x86移植资料
- 01背包问题
- 构造螺旋矩阵
- c语言
- python IDLE编程时遇到Python Error: Inconsistent indentation detected! 解决方法
- 设计模式笔记之虚拟工厂模式
- Eclipse快捷键大全
- hive Lateral View语法
- poj-2482-Stars in Your Window-线段树
- [跨浏览器插件开发] FireBreath打包工具WIX的使用注意
- Linux输入子系统分析(一)
- 自己在安装centos 系统时, 是使用英文安装 成功,现在系统语言为英语,如何设置为中文?
- Makefile 编译jsoncpp源码 生成静态库和共享库的例子
- 《谁是谷歌想要的人才?》读书摘抄(2)——传统谜题
- 《谁是谷歌想要的人才?》读书摘抄(2)——传统谜题