首页 > 其他 > 详细

13. Roman to Integer

时间:2019-05-07 20:53:28      阅读:125      评论:0      收藏:0      [点我收藏+]

题目链接:https://leetcode.com/problems/roman-to-integer/

 

解题思路:

题目意思是要把罗马符号转为数字,问题就是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,100
11             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 C
20             if(res >= 500)
21                 res += -100;
22             else
23                 res += 100;
24         }else if(c == ‘D‘){
25             res += 500;
26         }else if(c == ‘M‘){
27             res += 1000;
28         }
29     }
30     return res;
31 }

 

13. Roman to Integer

原文:https://www.cnblogs.com/wangyufeiaichiyu/p/10827802.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!