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;
}
}