Encuentre la respuesta a la ecuación de cadena sin usar eval ()

Necesito una forma de tomar una ecuación dada como una cadena y encontrar su respuesta matemática, la gran advertencia es que no puedo usar eval ().

Sé que la ecuación solo contendrá números, los cuatro operadores matemáticos (es decir, * / + -) y paréntesis, puede o no tener espacios en la cadena. Aquí hay un par de ejemplos.

4 * 4
4+6/3
(3 / 2)*(4+8)
(4+8) * 2

¿Supongo que tendrá que hacerse con algún tipo de expresión regular?

Respuestas a la pregunta(2)

Su respuesta a la pregunta