以下の質問で大学院 C++ 開発者向けのテストを受けました。タスクを完了するための明確な方法を決めることができなかったので、うまくいきませんでした。時間制限も役に立ちませんでした。経験豊富な開発者が次の問題にどのように取り組んだか、疑似コードまたはサンプル コードに興味があります。
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)
さらに、これは私が正常に完了できなかった 2 番目の C++ です。C++ を使用して 1 年間のインターンシップ経験と 1 年間のアカデミックな経験がありましたが、これらのテストのいくつかに対する準備ができていません。「テスト」の経験を積むために、このような問題の解決を試みることができる推奨リソースはありますか?