Ocena prostego wyrażenia matematycznego napisu [zamknięte]

Właśnie przeprowadziłem test dla absolwenta programisty C ++ z pytaniem poniżej. Nie poszło zbyt dobrze, ponieważ nie mogłem zdecydować się na jasny sposób wykonania zadania. Limit czasu też nie pomógł. Interesuje mnie, jak doświadczeni programiści poradziliby sobie z następującym problemem - w pseudo lub przykładowym kodzie:

Evaluate

Write a function in C or C++ that evaluates the result of a simple expression.
The function should ignore whitespace, but stop at the first non valid character.
Valid tokens are listed in the table below:

0-9 - Only integers are allowed in expressions

() - Nested expressions should be evaluated first.

+, -, *, / - Basic operators are addition, subtraction, multiplication and division.

The expression should be parsed from left to right. It is not necessary to consider operator precedence in your solution (e.g. 1 + 3 * 4 = 16). If there is an error in the expression, the function should return false.

Suggested prototype for function:

Example:

bool evaluate(const char *expression, int &result)
{
...
}

**Input**
1+3
(1 + (12 * 2)

**Result**
4
N/A

**Return code**
true
false (missing bracket)

Ponadto jest to drugie C ++, którego nie udało mi się zakończyć pomyślnie. Mieli 1 rok doświadczenia w stażu i 1 rok doświadczenia w nauce przy użyciu C ++, ale nie jestem przygotowany na niektóre z tych testów. Czy są jakieś zalecane zasoby, w których mogę się posłużyć do rozwiązywania problemów takich jak ten, aby uzyskać więcej doświadczeń z „testowaniem”?

questionAnswers(5)

yourAnswerToTheQuestion