zoukankan      html  css  js  c++  java
  • Roman to Integer

    这道题我是按定义来做的

    Roman to Integer 

    Given a roman numeral, convert it to an integer.

    Input is guaranteed to be within the range from 1 to 3999.

     1 package com.gxf.test;
     2 
     3 public class Solution {
     4     public int romanToInt(String s) {
     5         int result = 0;
     6         char array[] = s.toCharArray();
     7         int i = 0;
     8 
     9         while (i < array.length) {
    10             switch (array[i]) {
    11             case 'M':// 千位
    12                 while (i < array.length && array[i] == 'M') {
    13                     result += 1000;
    14                     i++;
    15                 }
    16                 break;
    17             case 'C':// 百位
    18                 while (i < array.length && array[i] == 'C') {
    19                     result += 100;
    20                     i++;
    21                 }
    22                 if (i < array.length && array[i] == 'D') {
    23                     result += 300;// 前面加过100
    24                     i++;
    25                 }// CD
    26                 if (i < array.length && array[i] == 'M') {
    27                     result += 800;// 前面加过100
    28                     i++;
    29                 }// CM
    30                 break;
    31             case 'D':// 百位500
    32                 i++;
    33                 result += 500;
    34                 while (i < array.length && array[i] == 'C') {
    35                     result += 100;
    36                     i++;
    37                 }
    38                 break;
    39             case 'X':// 十位
    40                 while (i < array.length && array[i] == 'X') {
    41                     result += 10;
    42                     i++;
    43                 }
    44                 if (i < array.length && array[i] == 'L') {
    45                     result += 30;
    46                     i++;
    47                 }
    48                 if (i < array.length && array[i] == 'C') {
    49                     result += 80;
    50                     i++;
    51                 }
    52                 break;
    53             case 'L':
    54                 i++;
    55                 result += 50;
    56                 while (i < array.length && array[i] == 'X') {
    57                     result += 10;
    58                     i++;
    59                 }// 十位
    60                 break;
    61             case 'I':// 个位
    62                 while (i < array.length && array[i] == 'I') {
    63                     result += 1;
    64                     i++;
    65                 }
    66                 if (i < array.length && array[i] == 'V') {
    67                     result += 3;
    68                     i++;
    69                 }
    70                 if (i < array.length && array[i] == 'X') {
    71                     result += 8;
    72                     i++;
    73                 }
    74                 break;
    75             case 'V':
    76                 result += 5;
    77                 i++;
    78                 while (i < array.length && array[i] == 'I') {
    79                     result += 1;
    80                     i++;
    81                 }
    82             }
    83         }
    84 
    85         return result;
    86     }
    87 
    88 }
  • 相关阅读:
    微信小程序分列显示数据
    微信小程序open-data获取用户的信息样式设置
    微信小程序-获取当前城市位置
    EXCEL按照指定的格式递增到指定的行
    在Linux合并文件
    在Linux切割文件
    解锁oracle用户的方法
    oracle/MySQL构造数据的存储过程
    在PL/SQL登录时报system用户表空间不足
    删除oracle数据库用户
  • 原文地址:https://www.cnblogs.com/luckygxf/p/4087823.html
Copyright © 2011-2022 走看看