Dada una expresión infija, determine si todas las constantes son del mismo tipo.
Los operadores consistirán solo en estos operadores diádicos :+-/*
Su programa o función debe tomar una cadena de expresión válida como entrada y generar un valor verdadero si las constantes en la expresión son del mismo tiempo, y un valor falso de lo contrario.
La expresión consistirá únicamente en constantes y puede contener cualquiera de los siguientes tipos:
- Cadena, de la forma
"String"
(siempre comillas dobles, puede estar vacía, sin caracteres de escape, puede contener cualquier texto ASCII) - Entero, de la forma
14
(siempre positivo o cero) - Flotante, de la forma
7.3f
(Siempre positivo o cero, siempre tiene un componente decimal, por ejemplo14.0f
) - Byte, de la forma
0x42
(0-255
, siempre 2 caracteres hexadecimales) - Booleano, de la forma
true
(true
ofalse
mayúsculas y minúsculas)
La expresión no contendrá paréntesis, ya que el orden de operación no afecta el tipo cuando no hay coerción de tipo.
Una constante solitaria sin operadores es una expresión válida.
Una expresión vacía no es una expresión válida.
Puede suponer que la cadena de expresión no contiene espacios en blanco fuera de los literales de cadena.
Nota: Alternativamente, puede suponer que siempre habrá espacios entre constantes y operadores, como se ve en los casos de prueba. Si hace esta suposición, especifique como tal en su respuesta
No tiene que manejar expresiones no válidas como 1 +
.
Puntuación
Este es el código de golf , ¡por lo que gana menos bytes!
Casos de prueba
(Espacio en blanco agregado para facilitar la lectura)
2 + 3
True
"Hello" / "World"
True
true * false
True
"Hello" + 4
False
"Hello" + "4"
True
3 + 2.4f / 8
False
0xff * 0xff
True
0xff + 2
False
6
True
" " + ""
True
"4 + false" + "word"
True
truE+fALSe
). Si no, puedo guardar dos bytes en mi solución.