Skip to content

Commit 0015c8d

Browse files
committed
feat(day 51): implement phone-number formatter for +D (DDD) DDD-DDDD output
1 parent fdf3938 commit 0015c8d

2 files changed

Lines changed: 56 additions & 0 deletions

File tree

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
import unittest
2+
from PhoneNumberFormatter import format_number,format_number_optimized
3+
4+
5+
class PhoneNumberFormatterTest(unittest.TestCase):
6+
7+
def test1(self):
8+
self.assertEqual(format_number("05552340182"),"+0 (555) 234-0182")
9+
10+
11+
def test2(self):
12+
self.assertEqual(format_number("15554354792"),"+1 (555) 435-4792")
13+
14+
def test3(self):
15+
self.assertEqual(format_number_optimized("05552340182"),"+0 (555) 234-0182")
16+
17+
def test4(self):
18+
self.assertEqual(format_number_optimized("15554354792"),"+1 (555) 435-4792")
19+
20+
21+
if __name__ == "__main__":
22+
unittest.main()
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
"""
2+
3+
Phone Number Formatter
4+
Given a string of ten digits, return the string as a phone number in this format: "+D (DDD) DDD-DDDD".
5+
"""
6+
7+
def format_number(number):
8+
9+
country_code = number[0]
10+
11+
area_code = number[1:4]
12+
13+
local_start = number[4:7]
14+
local_end = number[7:]
15+
16+
return f"+{country_code} ({area_code}) {local_start}-{local_end}"
17+
18+
19+
20+
def format_number_optimized(number):
21+
22+
if len(number) != 11 or not number.isdigit():
23+
raise ValueError("Input must be a string of exactly 10 digits.")
24+
25+
26+
return f"+{number[0]} ({number[1:4]}) {number[4:7]}-{number[7:]}"
27+
28+
29+
if __name__ == "__main__":
30+
print(format_number("05552340182"))
31+
print(format_number("15554354792"))
32+
a = "shdh."
33+
a = a.replace('.','')
34+
print(a)

0 commit comments

Comments
 (0)