【python】3.19美团第一、二题mark
#insert test n = int(input) yuanjia = list(map(int,input().split())) zhekou = list(map(int,input().split())) m = int(input) manjian = list(map(int,input().split())) manjian.reverse() cut = list(map(int,input().split())) cut.reverse() res = "" jiage = youhuijia = manjianhou = 0 for i in range(n): jiage += yuanjia[i] youhuijia += zhekou[i] for j in range(m): if jiage >= manjian[j]: manjianhou = jiage - cut[j] break else: manjianhou = jiage if youhuijia == manjianhou: res += "B" elif youhuijia > manjianhou: res += "M" else: res += "Z" print(res)
import math class Solution(): def secret(self, string, num, t): if t == 1: return self.type1(string, num) if t == 2: return self.type2(string, num) def type1(self, strings, nums): strings = '0' + strings res = [] temp = 0 mininum = 1000000000 while temp < nums: a = math.ceil((nums - temp)/2) #print(a) if a < mininum: res.append(strings[a]) else: res.append(strings[a+temp]) mininum = a #print(mininum) temp += 1 return res def type2(self, strings, nums): strings = '0' + strings res = [0 for i in range(nums+1)] #print(res) temp = 0 index = 1 mininum = 1000000000 while temp < nums: a = math.ceil((nums - temp)/2) if a < mininum: res[a] = strings[index] else: res[a + temp] = strings[index] mininum = a temp += 1 index += 1 del res[0] return res
logo