Solve these string, subset, and date problems

Read the full interview experience this question came from →

Quick Overview

This multi-part question evaluates string and array manipulation, in-place algorithm implementation, combinatorial subset generation with and without duplicate handling, and calendar date arithmetic, testing competencies in algorithm design, complexity analysis, and edge-case handling within the Coding & Algorithms domain and requiring both conceptual understanding and practical implementation skills. Such problems are commonly asked in technical interviews to gauge a candidate's ability to implement efficient algorithms, reason about permutations and deduplication, manage memory constraints for in-place operations, and correctly handle date calculations and input edge cases.

Solve these string, subset, and date problems

Company: ByteDance

Role: Software Engineer

Category: Coding & Algorithms

Difficulty: medium

Interview Round: Technical Screen

You are asked to solve multiple coding tasks. 1) **Reverse word order in a string** - Input: a string `s` containing words separated by spaces (may contain leading/trailing spaces and multiple spaces between words). - Output: a string where the **order of words is reversed**, with **exactly one space** between words, and **no leading/trailing spaces**. - Example: `" the sky is blue " -> "blue is sky the"` **Follow-up:** If the input is a **mutable character array** (e.g., `char[]`), modify it **in place** (O(1) extra space) to achieve the same result. 2) **All subsets (no duplicates in input)** - Input: an integer array `nums` where all elements are distinct. - Output: return all possible subsets (the power set). Order does not matter. 3) **All unique subsets (duplicates allowed in input)** - Input: an integer array `nums` that may contain duplicates. - Output: return all **unique** subsets (no duplicate subsets in the output). 4) **Days between two dates** - Input: two dates `date1` and `date2` in the format `YYYY-MM-DD`. - Output: return the absolute number of days between the two dates. - Assume valid Gregorian calendar dates.

Overview: This multi-part question evaluates string and array manipulation, in-place algorithm implementation, combinatorial subset generation with and without duplicate handling, and calendar date arithmetic, testing competencies in algorithm design, complexity analysis, and edge-case handling within the Coding & Algorithms domain and requiring both conceptual understanding and practical implementation skills. Such problems are commonly asked in technical interviews to gauge a candidate's ability to implement efficient algorithms, reason about permutations and deduplication, manage memory constraints for in-place operations, and correctly handle date calculations and input edge cases.

Read the full ByteDance Software Engineer interview experience this question came from

|Home/Coding & Algorithms/ByteDance
ByteDance logo
ByteDance
Jan 23, 2026
mediumSoftware EngineerTechnical ScreenCoding & Algorithms
9
0

You are asked to solve multiple coding tasks.

  1. Reverse word order in a string
  • Input: a string s containing words separated by spaces (may contain leading/trailing spaces and multiple spaces between words).
  • Output: a string where the order of words is reversed , with exactly one space between words, and no leading/trailing spaces .
  • Example: " the sky is blue " -> "blue is sky the"

Follow-up: If the input is a mutable character array (e.g., char[]), modify it in place (O(1) extra space) to achieve the same result.

  1. All subsets (no duplicates in input)
  • Input: an integer array nums where all elements are distinct.
  • Output: return all possible subsets (the power set). Order does not matter.
  1. All unique subsets (duplicates allowed in input)
  • Input: an integer array nums that may contain duplicates.
  • Output: return all unique subsets (no duplicate subsets in the output).
  1. Days between two dates
  • Input: two dates date1 and date2 in the format YYYY-MM-DD .
  • Output: return the absolute number of days between the two dates.
  • Assume valid Gregorian calendar dates.

Submit Your Answer to Earn 20XP

Sign in to leave a comment

Loading comments...