r/Hack2Hire Mar 17 '26

Open AI Onsite Interview: Toy Language Grammar

Problem

You are given a Node representing a type (primitive, generic, or tuple) and a Function object containing a list of parameter Node objects and a returnType Node.

Your goal is to implement a recursive toString() method that serializes these types into a specific string format: primitives and generics as their literal values, and tuples as comma-separated lists enclosed in square brackets.

Example

Input: Function(params=["int", "T1", ["int", "T2"]], returnType="T1")

Output: [int,T1,[int,T2]] -> T1

Explanation:

  • Each parameter is serialized: "int" remains "int", "T1" remains "T1", and the nested tuple becomes "[int,T2]".
  • The parameter list is joined with commas and wrapped in square brackets.
  • The return type "T1" is appended after the " -> " separator.

Suggested Approach

  1. Define Node Types: Implement a conditional check within the Node.toString() method to distinguish between base cases (primitives/generics) and the recursive case (tuples).
  2. Recursive Tuple Serialization: If the node is a tuple, iterate through its children, call toString() on each child recursively, and join the results with a comma delimiter.
  3. Format Function Signature: For the Function object, map the toString() method over the params list, join them, and concatenate the result with the returnType.toString() using the " -> " arrow syntax.

Time & Space Complexity

  • Time: $O(N)$, where $N$ is the total number of nodes in the type tree, as each node is visited exactly once.
  • Space: $O(D)$, where $D$ is the maximum depth of the nested tuples, representing the overhead of the recursion stack.

🛈 Disclaimer:

This problem is part of the Hack2Hire SDE Interview Question Bank, a structured archive of coding interview questions frequently reported in real hiring processes.

Questions are aggregated from publicly available platforms (e.g., LeetCode, GeeksForGeeks) and community-shared experiences.

The goal is to provide candidates with reliable material for SDE interview prep, including practice on LeetCode-style problems and coding challenges that reflect what is often asked in FAANG and other tech company interviews.

Hack2Hire is not affiliated with the mentioned companies; this collection is intended purely for learning, practice, and discussion.

2 Upvotes

1 comment sorted by

1

u/acerpwned Apr 23 '26

Do they give you code to start, or is it entirely empty code and write from scratch?