L3-029 还原文件 Python 团体程序设计天梯赛-练习集

感觉这道题的难度在L2,思路并不复杂,做法也很多,这里就直接用字符串遍历查找的方法,这种方法并不是最好的解法,但思路简单

一开始碰到了测试点一不通过的问题,后来搜索相关解法,发现以下问题需要注意

需要对断口信息进行排序,而且需要按照长度由短到长排序,才会通过全部测试点

已经找到的断口,做一下标记,以免查找的时候可能会有异常

代码如下:

import sys
in_1 = int(sys.stdin.readline())-1
in_list_1 = list(sys.stdin.readline().split())
in_2 = int(sys.stdin.readline())
in_dict_2 = {}
in_dict_3 = {}
out_list_1 = []
sign = 0
for x in range(1,in_2+1):
    in_list_2 = sys.stdin.readline().replace('\n','')
    in_dict_2[in_list_2] = len(in_list_2)
    in_dict_3[str(list(in_list_2.split())[1:])] = x
sort_list = sorted( in_dict_2.items(),key = lambda x:x[1],reverse = False)
for x in sort_list:
    out_list_1.append(list(x[0].split())[1:])
while True:
    for y in range(0,len(out_list_1)):
        if out_list_1[y][0] == in_list_1[sign]:
            if out_list_1[y] == in_list_1[sign:sign+len(out_list_1[y])]:
                sign = sign + len(out_list_1[y]) - 1
                if sign == in_1:
                    print("{}".format(in_dict_3[str(out_list_1[y])]),end="")
                    out_list_1[y] = ['*']
                    break
                else :
                    print("{} ".format(in_dict_3[str(out_list_1[y])]),end="")
                    out_list_1[y] = ['*']
                    break
    if sign==in_1:
        break

 提交结果:

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值