Quick Overview

Decompress an encoded string evaluates algorithm design, data structures, correctness, complexity, edge cases, and implementation details in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

Decompress an encoded string

Company: C3 AI

Role: Data Scientist

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Onsite

# Decompress an encoded string Given an encoded string, return its decoded (decompressed) form. Use the following encoding rule: - A positive integer \(k\) followed by a bracketed substring means the substring is repeated \(k\) times. - Encodings can be nested. Examples: - Input: `"3[a]2[bc]"` → Output: `"aaabcbc"` - Input: `"3[a2[c]]"` → Output: `"accaccacc"` - Input: `"2[abc]3[cd]ef"` → Output: `"abcabccdcdcdef"` Assume: - The input is valid. - Digits only appear as repeat counts. Return the decoded string. ### Constraints & Assumptions - Preserve the scope, facts, inputs, and requested outputs from the prompt above. - If the prompt leaves a detail unspecified, state a reasonable assumption before relying on it. - Keep the answer interview-ready: concise enough to present, but concrete enough to implement or evaluate. ### Clarifying Questions to Ask - Clarify input sizes, value ranges, mutability, return format, and tie-breaking. - State the target time and space complexity before coding. - Call out edge cases such as empty inputs, duplicates, invalid values, overflow, and boundary sizes. ### What a Strong Answer Covers - A clear algorithm with the right data structures and enough pseudocode or code-level detail to implement it. - A correctness argument that explains why the algorithm covers all required cases. - Time and space complexity, plus at least one alternative approach when relevant. - Focused tests for normal cases, edge cases, and failure modes. ### Follow-up Questions - How would the approach change if the input were streaming or too large for memory? - What invariants would you assert in production code? - Which tests would catch off-by-one, duplicate, or tie-breaking bugs?

Quick Answer: Decompress an encoded string evaluates algorithm design, data structures, correctness, complexity, edge cases, and implementation details in a realistic interview setting. A strong answer states assumptions, handles edge cases, explains trade-offs, and shows how to validate the result clearly.

Decode strings where k[substring] repeats substring k times, including nested encodings.

Constraints

  • Inputs are Python literals matching the function signature.
  • Return a deterministic exact-match value.

Examples

Input: ('3[a]2[bc]',)

Expected Output: 'aaabcbc'

Explanation: Simple repeated groups.

Input: ('3[a2[c]]',)

Expected Output: 'accaccacc'

Explanation: Nested encodings are decoded inside out.

Hints

  1. Use stacks for repeat counts and previous strings.
  2. Build the current decoded segment until a closing bracket.

Loading coding console...