百度3月7笔试题求解
就是黑白魔法这题,输入一个n代表n次魔法,之后输入n个非零数字代表每次释放的魔法,其中对于一段连续释放魔法累乘结果若为负数就是一次黑魔法,反之是一次白魔法,问最后一共能释放多少种不同的黑魔法以及白魔法,不同指的就是不同段连续释放组成的结果。这题难道不是就对每一个子串求一次累乘就行了嘛,还有啥特殊情况呢,只过了27%。
以下是核心代码块,m就是那一组释放的魔法的一个list,a代表黑魔法的次数,b代表白魔法的次数。
for i in range(len(m)): t = 1 for j in range(i, len(m)): t *= m[j] if t < 0: a += 1 else: b += 1#笔试##百度#