链接: https://pan.baidu.com/s/1lRERVgQAAXZsJG94GPbesQ 密码: 28pr
rs = '''aa bb ct uu dd yy fg
tt yy ww mm cc bx qq
ss dd zz bx
ii mm bc gg
tx cx bx qq
pp cx gg nn ee'''
def roadInfo(s):
d = []
rslist = s.split("\n")
i = 0
for x in rslist:
print("road " + str(i), x.split())
d.append(x.split())
i += 1
return d
d = []
print("====get all road info=====")
d = roadInfo(rs)
#print(d)
print("==find all begin end exchange====")
bn = "bb"
en = "ee"
b = [] # 保持包含起始站的線路
e = []
c = []
bex = [] # 與起點相交的線路
eex = []
def findExchange(r1, r2):
li = []
for x in r1:
if x in r2:
temp = x, r1.index(x), r2.index(x)
li.append(temp)
if len(li) == 0:
return [(-1, -1, -1)]
return li
def diffStation(allroad, be):
i = 0
for dr in allroad:
px = findExchange(dr, be)
print(px)
for p in px:
if p[0] == "bb":
b.append(i)
elif p[0] == "ee":
e.append(i)
else:
c.append(i)
i += 1
diffStation(d, [bn, en])
print(b, e, c)
def connet(r, t):
li = []
for x in r:
for y in t:
ret = findExchange(d[x], d[y])
if ret[0][0] != -1:
li.append(y)
print(x, y ,ret)
return li
bex = connet(b, c)
print("bex", bex)
eex = connet(e, c)
print("eex", eex)
print("-------")
fin = connet(bex, eex)
print(fin)