Coding questions · Deutsche Bank
Solve tree equality and valid parentheses
This problem set evaluates core skills in data structures and algorithmic reasoning, specifically binary tree structural equality and bracket-matching for strings, testing understanding of tree traversal, recursion, and stack-based parsing.
You are asked to solve two independent coding questions.
1) Compare two binary trees for equality
Given the roots of two binary trees p and q, return true if they are structurally identical and all corresponding nodes have the same value; otherwise return false.
Input: Two tree roots p, q (each node has val, left, right).
Output: Boolean.
Constraints (typical):
0 <= number_of_nodes <= 10^4- Node values fit in 32-bit signed integer.
2) Validate bracket/parentheses string
Given a string s consisting only of the characters '(' , ')' , '{' , '}' , '[' , ']', determine whether the input string is valid.
A string is valid if:
- Open brackets are closed by the same type of brackets.
- Open brackets are closed in the correct order.
- Every close bracket has a corresponding earlier open bracket.
Input: String s.
Output: Boolean.
Constraints (typical):
0 <= |s| <= 10^5
Additional requirement
After implementing each solution, write a few test cases that cover normal cases and edge cases.
Compare Binary Trees For Equality
Trees are represented as [value,left,right] or None. Return whether two trees have identical structure and values.
Examples
Example 1
Input: ([1,[2,None,None],[3,None,None]], [1,[2,None,None],[3,None,None]])
Output: True
Explanation: Same structure and values.
Example 2
Input: ([1,[2,None,None],None], [1,None,[2,None,None]])
Output: False
Explanation: Different structure is not equal.
Hints
- Clarify edge cases before coding.
- Keep the return value deterministic.
Validate Bracket String
Return whether a bracket string is valid with matching bracket types and order.
Examples
Example 1
Input: ('()[]{}',)
Output: True
Explanation: Every bracket closes correctly.
Example 2
Input: ('([)]',)
Output: False
Explanation: Incorrect nesting is invalid.
Hints
- Clarify edge cases before coding.
- Keep the return value deterministic.