-
Notifications
You must be signed in to change notification settings - Fork 25
Expand file tree
/
Copy path(6 kyu) Salesman's Travel.py
More file actions
35 lines (31 loc) · 927 Bytes
/
(6 kyu) Salesman's Travel.py
File metadata and controls
35 lines (31 loc) · 927 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
import re
def travel(r, zipcode): # #1
addresses = r.split(",")
records = []
for x in addresses:
addr = re.search(r"(^\d+) ([a-zA-z.\s]+) ([A-Z]{2} \d+)$", x)
records.append({
"house": addr.group(1),
"street": addr.group(2),
"zip": addr.group(3)
})
streets = []
houses = []
for r in records:
if (r["zip"] == zipcode):
streets.append(r["street"])
houses.append(r["house"])
return "{}:{}/{}".format(
zipcode,
",".join(streets),
",".join(houses)
)
def travel(r, zipcode): # #2
streets = []
houses = []
addresses = r.split(",")
for x in addresses:
if " ".join(x.split()[-2:]) == zipcode:
streets.append(" ".join(x.split()[1:-2]))
houses += x.split()[:1]
return "{}:{}/{}".format(zipcode, ",".join(streets), ",".join(houses))