Skip to content

Commit 2a21af9

Browse files
committed
Create 0273-integer-to-english-words.js
1 parent 3669d5c commit 2a21af9

File tree

1 file changed

+50
-0
lines changed

1 file changed

+50
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
/**
2+
* Time O(Log10N) | Space O(1)
3+
* https://leetcode.com/problems/integer-to-english-words
4+
* @param {number} num
5+
* @return {string}
6+
*/
7+
8+
var convertToWords = function (num) {
9+
var belowTwenty = ["", "One", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine", "Ten", "Eleven", "Twelve", "Thirteen", "Fourteen", "Fifteen", "Sixteen", "Seventeen", "Eighteen", "Nineteen"];
10+
var belowHundred = ["", "Ten", "Twenty", "Thirty", "Forty", "Fifty", "Sixty", "Seventy", "Eighty", "Ninety"];
11+
var thousands = ["" , "Thousand", "Million", "Billion"]
12+
var pointer = 0;
13+
result = "";
14+
15+
while (num > 0) {
16+
var words = "";
17+
reminder = num % 1000;
18+
num = Math.floor(num / 1000);
19+
20+
if (reminder > 0) {
21+
if (reminder >= 100) {
22+
words += belowTwenty[Math.floor(reminder / 100)] + " Hundred ";
23+
reminder %= 100;
24+
}
25+
26+
if (reminder >= 20) {
27+
words += belowHundred[Math.floor(reminder / 10)] + " ";
28+
reminder %= 10;
29+
}
30+
31+
if (reminder > 0) {
32+
words += belowTwenty[Math.floor(reminder)] + " ";
33+
}
34+
35+
result = words + thousands[pointer] + " " + result;
36+
}
37+
pointer += 1;
38+
}
39+
return result.trim();
40+
}
41+
42+
var numberToWords = function (num) {
43+
if (num == 0) {
44+
return "Zero";
45+
}
46+
else {
47+
return convertToWords(num);
48+
}
49+
50+
};

0 commit comments

Comments
 (0)