Convert a non-negative integer num to its English words representation. Example 1: Input: num = 123 Output: "One Hundred Twenty Three" Example 2: Input: num = 12345 Output: "Twelve Thousand Three Hundred Forty Five" Example 3: Input: num = 1234567 Output: "One Million Two Hundred Thirty Four Thousand Five Hundred Sixty Seven"
class Solution { public String numberToWords(int num) { if (num == 0) return "Zero"; StringBuilder sb = new StringBuilder(); String[] one = {"Zero", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"}; String[] ten = {"Zero", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"}; String[] units = {"Zero", "Thousand", "Million", "Billion", "Trillion"}; int i = 0; while (num > 0) { if (num % 1000 != 0) { sb.insert(0, units[i] + " "); numToWordsHelper(sb, one, ten, num % 1000);