Bestimmen Sie anhand eines Infix-Ausdrucks, ob alle Konstanten vom gleichen Typ sind.
Operatoren bestehen nur aus diesen dyadischen Operatoren:+-/*
Ihr Programm oder Ihre Funktion sollte eine gültige Ausdruckszeichenfolge als Eingabe verwenden und einen wahrheitsgemäßen Wert ausgeben, wenn die Konstanten im Ausdruck gleichzeitig sind, und ansonsten einen falschen Wert.
Der Ausdruck besteht ausschließlich aus Konstanten und kann einen der folgenden Typen enthalten:
- Zeichenfolge des Formulars
"String"(Immer doppelte Anführungszeichen, kann leer sein, keine Escapezeichen, kann ASCII-Text enthalten) - Ganzzahl der Form
14(Immer positiv oder Null) - Float der Form
7.3f(Immer positiv oder Null, hat immer eine Dezimalkomponente, z.14.0f) - Byte der Form
0x42(0-255, immer 2 hexadezimale Zeichen) - Boolescher Wert in der Form
true(trueoder ohnefalseBerücksichtigung der Groß- und Kleinschreibung)
Der Ausdruck enthält keine Klammern, da die Reihenfolge der Operation den Typ nicht beeinflusst, wenn kein Typzwang vorhanden ist.
Eine einzelne Konstante ohne Operatoren ist ein gültiger Ausdruck.
Ein leerer Ausdruck ist kein gültiger Ausdruck.
Sie können davon ausgehen, dass die Ausdruckszeichenfolge kein Leerzeichen außerhalb von Zeichenfolgenliteralen enthält.
Hinweis: Alternativ können Sie davon ausgehen, dass zwischen Konstanten und Operatoren immer Leerzeichen vorhanden sind, wie in den Testfällen dargestellt. Wenn Sie diese Annahme treffen, geben Sie dies bitte in Ihrer Antwort an
Sie müssen nicht mit ungültigen Ausdrücken wie z 1 +.
Wertung
Dies ist Code-Golf , also gewinnen die wenigsten Bytes!
Testfälle
(Leerzeichen zur besseren Lesbarkeit hinzugefügt)
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). Wenn nicht, kann ich zwei Bytes in meiner Lösung speichern.