|
|
发表于 2025-12-15 22:37:42
|
显示全部楼层
本帖最后由 Vektorim 于 2025-12-15 23:00 编辑
- def mezhdu5_18(stations):
- for i,j in stations.items(): #i为线路,j为站点列表
- if i == ‘5号线’ or i == ‘18号线’:continue
- line_index = []
- for k in range(len(j)): #k为i号线的站点索引,遍历每一个站点
- if j[k] in range(len(stations['5号线'])) : #判断5号线站点
- line_index.append(k+1) #用正索引访问5号线
- if j[k] in range(len(stations['18号线'])): #判断18号线站点
- line_index.append(-k-1) #用负索引访问18号线(负负得正)
- for l in range(1,len(line_index)+1):
- if line_index[l]*line_index[l-1]<0: #利用零点定理判断5号线和18号线之间的索引位置,若同号则跳过
- if line_index[l] > 0: #5号线站点
- print(f"{i}在18号线和5号线之间的部分为{j[-line_index[l-1]+1:line_index[l]}")
复制代码 纯手打。
该程序有很多缺点,比如交而不换(25号线)和连续换2次(17号线)无法判断也懒得写了,如果有更好的算法的话欢迎反馈
|
|