Spell Out a Nonnegative Integer
Company: Carvana
Role: Software Engineer
Category: Coding & Algorithms
Difficulty: easy
Interview Round: Onsite
Quick Answer: This question evaluates a candidate's ability to decompose integers and implement precise string-formatting logic, including mapping numeric values to their English word equivalents and managing scale units and boundary conditions.
Constraints
- 0 <= num <= 2147483647
- Only the scale words Thousand, Million, and Billion are needed
- Do not use the word "and" anywhere in the output
Examples
Input: (0,)
Expected Output: "Zero"
Explanation: Zero is a special case and should return exactly "Zero".
Input: (7,)
Expected Output: "Seven"
Explanation: Single-digit numbers map directly to their word form.
Input: (19,)
Expected Output: "Nineteen"
Explanation: Numbers from 10 to 19 use unique word forms.
Input: (123,)
Expected Output: "One Hundred Twenty Three"
Explanation: 123 is split into 100 + 20 + 3, with no "and" added.
Input: (1005,)
Expected Output: "One Thousand Five"
Explanation: The thousands group is spoken, and the zero hundreds/tens in the last group are skipped.
Input: (1234567,)
Expected Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
Explanation: Split into 1 million, 234 thousand, and 567.
Input: (1000000010,)
Expected Output: "One Billion Ten"
Explanation: Zero million and zero thousand groups are omitted entirely.
Input: (2147483647,)
Expected Output: "Two Billion One Hundred Forty Seven Million Four Hundred Eighty Three Thousand Six Hundred Forty Seven"
Explanation: This is the maximum allowed value and must be decomposed into billions, millions, thousands, and the final three-digit group.
Hints
- Break the number into groups of three digits from right to left: ones, thousands, millions, billions.
- Write a helper that converts a number from 1 to 999 into words, then attach the correct scale word for each nonzero group.