def find_seat(seatNum, seatOrLeave):seats = [0] * seatNum # 0表示座位空,1表示座位被占用last_seat = -1for action in seatOrLeave:if action == 1:# 找到最大社交距离的座位max_distance = -1best_seat = -1prev = -1for i in range(seatNum):if seats[i] == 1:if prev == -1:distance = ielse:distance = (i - prev) // 2if distance > max_distance:max_distance = distancebest_seat = prev + distanceprev = i# 检查最后一个座位到末尾的距离if prev != -1:distance = seatNum - 1 - previf distance > max_distance:max_distance = distancebest_seat = seatNum - 1else:best_seat = 0# 如果所有座位都被占用if best_seat == -1:last_seat = -1else:seats[best_seat] = 1last_seat = best_seatelse:# 员工离开leave_seat = abs(action)seats[leave_seat] = 0return last_seat# 自定义输入seatNum = int(input("请输入会议室座位总数: "))seatOrLeave = list(map(int, input("请输入员工的进出顺序(用空格分隔): ").split))# 计算最后进来员工的位置result = find_seat(seatNum, seatOrLeave)print(result)摘要:def find_seat(seatNum, seatOrLeave):seats = [0] * seatNum # 0表示座位空,1表示座位被占用last_seat = -1for action in seatOrLeave:if action == 1:
来源:瑾瑜教育