📅  最后修改于: 2023-12-03 14:58:34.632000             🧑  作者: Mango
Sudo GATE 2021的测验-问题2是一道编程问题,需要程序员使用Python编写一个函数解决。
给定一组门,每个门都有一个开关,打开一个门会使相邻的两个门的状态取反。给定一组初始状态,需要通过操作这些开关,将所有门的状态都变为1。
例如,给定初始状态为[0,0,0],可以通过操作第一个开关,使状态变为[1,1,0],再通过操作第二个开关,使状态变为[1,0,1],最后操作第三个开关,使状态变为[1,1,0],从而达到目标。
函数需要返回一个整数,表示最少需要操作多少次才能将所有门的状态变为1。如果无法达成目标,返回-1。
函数需要接受一个list类型的参数,表示初始状态,其中第i个元素表示第i个门的状态,取值为0或1。列表长度不超过1000。
函数需要返回一个整数,表示最少需要操作多少次才能将所有门的状态变为1。如果无法达成目标,返回-1。
输入:
[0,0,0]
输出:
3
说明:
输入:
[0,1,0]
输出:
-1
说明: 无论怎样操作开关,都无法将所有门的状态变为1,此时返回-1。