jeapedu 110 字典:公交查詢06 三次換乘線路

链接: 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)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值