Skip to content

Commit ef038fd

Browse files
committed
273
1 parent c623ef1 commit ef038fd

File tree

1 file changed

+95
-0
lines changed

1 file changed

+95
-0
lines changed

Aug-7-24.py

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
class Solution:
2+
def numberToWords(self, num: int) -> str:
3+
def splitNum(num,l=[]):
4+
i,cnt,temp = len(num)-1,0,""
5+
while i>=0:
6+
if cnt==3:
7+
l.append(temp[::-1])
8+
temp = num[i]
9+
cnt = 1
10+
i -= 1
11+
continue
12+
temp += num[i]
13+
cnt += 1
14+
i -= 1
15+
l.append(temp[::-1])
16+
return l
17+
def numToString(s):
18+
res = ""
19+
if len(s)==3:
20+
if s[0]!='0':
21+
res += ones[s[0]] + " Hundred "+ numToString(s[1:])
22+
else:
23+
res += numToString(s[1:])
24+
elif len(s)==2:
25+
if s[0]!='0':
26+
if s[0]=='1':
27+
res += special[s]
28+
else:
29+
res += tens[s[0]] + " " + numToString(s[1])
30+
else:
31+
res += numToString(s[1])
32+
elif s in ones:
33+
res += ones[s]
34+
return res
35+
if num==0:
36+
return 'Zero'
37+
res = ""
38+
d = {
39+
0:'',
40+
1: "Thousand",
41+
2: "Million",
42+
3: "Billion",
43+
}
44+
45+
ones = {
46+
'1':"One",
47+
'2':'Two',
48+
'3':'Three',
49+
'4':'Four',
50+
'5':'Five',
51+
'6':'Six',
52+
'7':'Seven',
53+
'8':'Eight',
54+
'9':'Nine'
55+
}
56+
57+
special = {
58+
"10":'Ten',
59+
'11':"Eleven",
60+
'12':'Twelve',
61+
'13':'Thirteen',
62+
'14':'Fourteen',
63+
'15':'Fifteen',
64+
'16':'Sixteen',
65+
'17':'Seventeen',
66+
'18':'Eighteen',
67+
'19':'Nineteen',
68+
}
69+
70+
tens = {
71+
'2':'Twenty',
72+
'3':'Thirty',
73+
'4':'Forty',
74+
'5':'Fifty',
75+
'6':'Sixty',
76+
'7':'Seventy',
77+
'8':'Eighty',
78+
'9':'Ninety'
79+
}
80+
81+
l = splitNum(str(num))
82+
ans = ""
83+
for i in range(len(l)-1,-1,-1):
84+
temp = numToString(l[i])
85+
ans += temp
86+
if i!=0 and temp:
87+
ans += " " + d[i] + " "
88+
res = []
89+
for i in ans.split():
90+
if i:
91+
if i[-1]==" ":
92+
res.append(i[:-1])
93+
else:
94+
res.append(i)
95+
return " ".join(res)

0 commit comments

Comments
 (0)