JasonChang

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

当前一位小于后一位的时候才是后一位减去前一位,并且这种位数只有一位

 1 public class Solution {
 2     public int romanToInt(String s) {
 3         // IMPORTANT: Please reset any member data you declared, as
 4         // the same Solution instance will be reused for each test case.
 5         int result = 0;
 6         if (s == null || s.length() == 0) {
 7              return result;
 8          }
 9         for (int i = 0; i < s.length(); i++) {
10              if (i > 0 && cToI(s.charAt(i)) > cToI(s.charAt(i - 1))) {  
11                  result += cToI(s.charAt(i)) - cToI(s.charAt(i - 1)) * 2;
12              } else {
13                  result += cToI(s.charAt(i));
14             }
15          }
16          return result;
17      }
18      
19      private static int cToI(char c) {
20          switch (c) {
21          case 'I':
22              return 1;
23          case 'V':
24              return 5;
25          case 'X':
26              return 10;
27          case 'L':
28              return 50;
29          case 'C':
30              return 100;
31          case 'D':
32              return 500;
33          case 'M':
34              return 1000;
35          default:
36              return 0;
37          }
38     }
39 }

 

posted on 2013-11-05 09:38  JasonChang  阅读(160)  评论(0编辑  收藏  举报