Likou 13-número romano a entero

tema:

Los números romanos contienen los siguientes siete caracteres: I, V, X, L, C, D y M.

personaje Valor
yo 1
V 5
X 10
L 50
C 100
re 500
METRO 1000

Por ejemplo, el número romano 2 se escribe II, que significa dos paralelos 1. 12 se escribe XII, que significa X + II. 27 se escribe XXVII, que es XX + V + II.

Normalmente, el número pequeño en números romanos está a la derecha del número grande. Pero hay casos especiales, por ejemplo, 4 no se escribe como IIII, sino como IV. El número 1 está a la izquierda del número 5, y el número representado es igual al número 4 obtenido al restar el número 1 del número grande 5. De manera similar, el número 9 se representa como IX. Esta regla especial solo se aplica a las siguientes seis situaciones:

I 可以放在 V (5) 和 X (10) 的左边,来表示 4 和 9。
X 可以放在 L (50) 和 C (100) 的左边,来表示 40 和 90。 
C 可以放在 D (500) 和 M (1000) 的左边,来表示 400 和 900。

Ideas para la resolución de problemas:
1. Del significado de la pregunta, cuando el número grande está a la izquierda y el número pequeño a la derecha, significa la suma entre números, y cuando el número pequeño está a la izquierda, lo contrario. es verdadero, lo que significa resta.
2 Saque los caracteres individuales de la cadena uno por uno y use el interruptor para escapar de los números romanos.
3. Luego juzgue la suma y la resta comparando el tamaño de los dígitos izquierdo y derecho para obtener el resultado final

el código se muestra a continuación

class Solution {
    
    
    //1大的数字在左边则为加,小的数字在左边则为减
    public int romanToInt(String s) {
    
    
 int result = 0;
        int beginNum = huoQu(s.charAt(0));
        for (int i = 1; i < s.length(); i++) {
    
    
            int num = huoQu(s.charAt(i));

            if(beginNum < num){
    
    
                result-=beginNum;
            }else {
    
    
                result+=beginNum;
            }
            beginNum = num;
        }

        result+=beginNum;
        return result;
    }

    public static int huoQu(char a){
    
    
        switch (a){
    
    
            case ('I'):
                return 1;
            case ('V'):
                return 5;
            case('X'):
                return 10;
            case('L'):
                return 50;
            case('C'):
                return 100;
            case('D'):
                return 500;
            case('M'):
                return 1000;
                default:
                    return 0;
        }
    }
    }

El efecto es el siguiente:
Inserte la descripción de la imagen aquí

Supongo que te gusta

Origin blog.csdn.net/weixin_42898315/article/details/108395412
Recomendado
Clasificación