智能家居系统
类型:程序题

题目说明

在智能家居系统中,我们可以通过中央控制系统来管理各个房间的智能灯。为了简化问题,假设每个房间有一个智能灯,其状态用1表示开,0表示关。我们的任务是计算家里所有开着的灯的数量。我们将采用分治算法的思想来解决这个问题。

请补全以下代码,使用分治算法实现统计列表中开着的灯(值为1)数量的功能。

def count_lights_on(rooms):
    # 如果列表为空,直接返回0
    if not rooms:
        return 0
    # 如果列表只有一个元素,直接判断是否为开着的灯
    if len(rooms) == 1:
        return rooms[0]
    # 将列表分为两部分
    mid =         ①
    left_rooms = rooms[:mid]
    right_rooms = rooms[mid:]
    # 使用分治递归统计每部分开着的灯的数量
    count_left =         ②
    count_right = count_lights_on(right_rooms)
    # 返回总开着的灯的数量
    return         ③
# 示例测试
rooms = [1, 0, 1, 0, 1, 0, 1]   # 1代表灯开着,0代表灯关着
print(count_lights_on(rooms)) # 输出应为4

评分标准

(1)len(rooms) // 2 (或等效答案);(3分)

(2)count_lights_on(left_rooms)(或等效答案);(2分)

(3)count_left + count_right (或等效答案)。(3分)

代码编辑器 加载中...
留空使用题目默认限制
{{resultStatus.text}}
正在加载运行记录...
乐编题库AI助手
人工客服
微信扫码联系客服
历史对话
{{ s.title || '未命名对话' }}
{{ s.created_at }}
暂无历史对话
我能帮助你什么?