博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
13. Roman to Integer
阅读量:5016 次
发布时间:2019-06-12

本文共 1120 字,大约阅读时间需要 3 分钟。

题目链接:

 

解题思路:

题目意思是要把罗马符号转为数字,问题就是4和9等数字,要额外注意,除此之外都是累加上去的。

所以要判断是否是4,或者9,从后往前判断,如果这个字符等于“I”且这个数小于5,说明代表的是1;但如果这个数大于5,说明代表的I在左边。

 

1 public static int romanToInt(String s) { 2     int res = 0; 3     for (int i = s.length() - 1; i >= 0; i--) { 4         char c = s.charAt(i); 5         if(c == 'I'){ 6             if(res >= 5)//如果>=5, 说明之前肯定遍历过V了,所以这个I肯定在左边,减 7                 res += -1; 8             else 9                 res += 1;10         }else if(c == 'V'){
//遇见V,L,D,M,统统都加5,50,500,10011 res += 5;12 }else if(c == 'X'){13 if(res >= 50)//说明肯定之前有过L,这个X肯定在左边,减14 res += -10;15 else 16 res += 10;17 }else if(c == 'L'){18 res += 50;19 }else if(c == 'C'){
//说明之前有D,这个C肯定在左边,减。能被减的只有I X C20 if(res >= 500)21 res += -100;22 else23 res += 100;24 }else if(c == 'D'){25 res += 500;26 }else if(c == 'M'){27 res += 1000;28 }29 }30 return res;31 }

 

转载于:https://www.cnblogs.com/wangyufeiaichiyu/p/10827802.html

你可能感兴趣的文章
第二百三十一节,Bootstrap 介绍
查看>>
JAVA面向对象三大特性总结
查看>>
guid
查看>>
ajax请求
查看>>
js学习总结----DOM增删改和应用
查看>>
希尔伯特矩阵(Hilbert matrix)
查看>>
(20)sopel算法
查看>>
学习总结 javascript 闭包
查看>>
实验吧一个小坑注入
查看>>
【 D3.js 高级系列 — 8.0 】 打标
查看>>
Mac必备软件推荐
查看>>
Android Gson深入分析
查看>>
display:flow-root
查看>>
判读字符串是否为空的全局宏-分享
查看>>
iOS中Block的基础用法
查看>>
22-reverseString-Leetcode
查看>>
Centos 开机自动联网
查看>>
cocos2dx使用lua和protobuf
查看>>
HDOJ 5630 Rikka with Chess
查看>>
netcore2.1 在后台运行一个任务
查看>>