可以飞行的次数 python

题目内容:

flight = ["a,b", "c2,d", "b,em", "em,c2", "f,d", "fn,c2"]

给定上面列出的一张航班表, 输入出发的机场名称,请问按照航班表最多可以连续飞行几次?

航班表中 "a,b" 含义为可以从a机场飞到b机场。你可以认为此题中航班不存在循环,而且一个机场最多只能够飞其他一个机场(即不会同时存在 "a,b","a,c")。

注意:出发机场的名称可能不在航班表中,此时可以飞行次数为0。

你可能首先需要将flight处理成一个字典。

输入格式:

字符串

输出格式:

整数

输入样例1:

f

输出样例1:

1

(解释:从f出发,飞到d,d机场不能飞行到其他任何机场。因此只能飞行1次)

输入样例2:

b

输出样例2:

3

(解释:从b出发,飞到em,再从em出发飞到c2,再从c2出发飞到d,共飞行3次)

时间限制:500ms内存限制:32000kb

flight = ["a,b", "c2,d", "b,em", "em,c2", "f,d", "fn,c2"]
flight_dct=dict(map(lambda s:s.split(','),flight))

def maxFlights(start,n=0):
    next=flight_dct.get(start,0)
    if next:
        n+=1
        # print(next)
        return maxFlights(next,n)
    else:
        return n

n=maxFlights('a')
n

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值