Roman to Integer
2015-06-06 11:38
260 查看
class Solution { public: int romanToInt(string s) { int i,len=s.size(); int dig[20]; for(i=0;i<len;i++) { if(s[i]=='I') dig[i]=1; if(s[i]=='V') dig[i]=5; if(s[i]=='X') dig[i]=10; if(s[i]=='L') dig[i]=50; if(s[i]=='C') dig[i]=100; if(s[i]=='D') dig[i]=500; if(s[i]=='M') dig[i]=1000; } int ans=0,cur=dig[0]; for(i=1;i<len;i++) { if(dig[i]<=dig[i-1]) { ans+=cur; } else { ans-=cur; } cur=dig[i]; } ans+=cur; return ans; } };
View Code
罗马数字中I =1, V=5,X=10, L=50, C=100,D=500,M=1000;
小数字放在大数字右边是相加,如VII是7,小数字放在大数字左边是相减,如IX=9。
根据数字的组成原则,先表示大数字,在表示小数字,如3999,先表示3000 MMM,再表示900 CM,再表示90 XC,再表示9 IX
所以从左到右遍历,若右边的数字小于等于当前数,则加上当前数,若右边的数字大于等于当前数,则减去当前数
相关文章推荐
- MVC客户管理(添加、修改、查询、分页)
- Socket file /var/lib/mysql/mysql.sock exists. Is another MySQL daemon already running with the same
- hadoop的关键进程
- 自定义spinner
- hadoop的关键进程
- hadoop的关键进程
- hadoop的关键进程 分类: A1_HADOOP 2015-06-06 11:37 52人阅读 评论(0) 收藏
- 15.6.6-sql字符串组装技巧
- Android NDK 使用第三方静态库(转)
- web页面邮箱的写法
- about service in android
- 代码整洁之道札记:格式
- Android Scroller类介绍
- 基于邻接表的图建立(有向图+无向图)
- ORA-12514: TNS: 监听程序当前无法识别连接描述符中请求的服务
- ICMP重定向问题的解决
- C小加 之 随机数
- 舰队管理系统分析与设计-舰队管理系统分析与设计(Oracle),功能需求,数据字典,软件工程
- 不用判断语句,求两个数的最大值
- 共享内存