Bewerten eines einfachen mathematischen Ausdrucks für einen String [closed]

Ich habe gerade einen Test für einen Diplom-C ++ - Entwickler mit der folgenden Frage gemacht. Es lief nicht so gut, ich konnte mich nicht für einen klaren Weg entscheiden, die Aufgabe zu erledigen. Zeitlimit hat auch nicht geholfen. Ich bin daran interessiert, wie erfahrene Entwickler das folgende Problem angegangen wären - in Pseudo- oder Beispielcode:

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)

Außerdem ist dies das zweite C ++, das ich nicht erfolgreich abgeschlossen habe. Habe 1 Jahr Berufserfahrung und 1 Jahr akademische Erfahrung mit C ++, aber ich bin nicht auf einige dieser Tests vorbereitet. Gibt es empfohlene Ressourcen, mit denen ich Probleme wie dieses lösen kann, um mehr Erfahrung im Testen zu sammeln?

Antworten auf die Frage(5)

Ihre Antwort auf die Frage