To Check the valid bracket structure using C# in an expression

Hai Guys,
Can anyone give the solution of the below program:
An Arithmetic string is based on numeric symbols, mathematical operations (+, /, -, *) and brackets ({, }, [, ], (, )).
For ex.
[{3+4} * (8-10)]
Write an efficient algorithm which determines whether the bracket structure is valid.
Provide Time/Space complexity.
Please write the algorithm using C#.
Also write the unit test cases using nUnit.
Thanks in advance.