leetcode-13 números romanos

Asunto: https://leetcode-cn.com/problems/roman-to-integer/

responder:

class Solution {

    public int romanToInt (String s) {

    if (s == null || s.isEmpty ()) return 0;

        char [] romanos = s.toCharArray ();

        int resultado = 0;

        para (int i = 0; i <romans.length; i ++) {

            si (i <romans.length-1) {

                resultado + = cal (romanos [i], romanos [i + 1]);

                if (isSpecial (romanos [i], romanos [i + 1])) {

                   i ++;

                }

            }más{

                resultado + = cal (romanos [i], 'A');

            }

        }

        devolver resultado;

    }

    public int cal (char p, char q) {

       int resultado = 0;

        booleano isSalir = falso;

        si (p == 'I') {

            si (q == 'V') {

                resultado = 4;

                isSalir = verdadero;

            } más si (q == 'X') {

                resultado = 9;

                isSalir = verdadero;

            }

        } más si (p == 'X') {

            si (q == 'L') {

                resultado = 40;

                isSalir = verdadero;

            } más si (q == 'C') {

                resultado = 90;

                isSalir = verdadero;

            }

        } más si (p == 'C') {

            si (q == 'D') {

                resultado = 400;

                isSalir = verdadero;

            } más si (q == 'M') {

                resultado = 900;

                isSalir = verdadero;

            }

        }

        if (! isSalir) {

            cambiar (p) {

                caso 'yo':

                    resultado = 1;

                    descanso;

                caso 'V':

                    resultado = 5;

                    descanso;

                caso 'X':

                    resultado = 10;

                    descanso;

                cuadro 'L':

                    resultado = 50;

                    descanso;

                caso 'C':

                    resultado = 100;

                    descanso;

                caso 'D':

                    resultado = 500;

                    descanso;

                caso 'M':

                    resultado = 1000;

                    descanso;

            }

        }

        devolver resultado;

    }

    public boolean isSpecial (char p, char q) {

        booleano isSalir = falso;

        si (p == 'I') {

            si (q == 'V') {

                isSalir = verdadero;

            } más si (q == 'X') {

                isSalir = verdadero;

            }

        } más si (p == 'X') {

            si (q == 'L') {

                isSalir = verdadero;

            } más si (q == 'C') {

                isSalir = verdadero;

            }

        } más si (p == 'C') {

            si (q == 'D') {

                isSalir = verdadero;

            } más si (q == 'M') {

                isSalir = verdadero;

            }

        }

        volver es salir;

    }

}

Supongo que te gusta

Origin blog.csdn.net/wuqiqi1992/article/details/108319127
Recomendado
Clasificación