24秋招美团一笔

1、小美的排列询问

alt

import sys

my_len = 0
d1,d2 = 0,0
my_list = []
for line in sys.stdin:
    a = line.split()
    if len(a)==1:
        my_len = int(a[0])
    elif len(a)==2:
        d1 = int(a[0])
        d2 = int(a[1])
    else:
        my_list = [int(i) for i in a]

index1,index2 = 0,0

for index,dt in enumerate(my_list):
    if dt==d1:
        index1 = index
    if dt==d2:
        index2 = index

result = 'Yes' if abs(index1-index2)==1 else 'No'
print(result)

2、小美走公路

alt

import sys

n = 0
d1, d2 = 0, 0
my_list = []
for line in sys.stdin:
    a = line.split()
    if len(a) == 1:
        n = int(a[0])
    elif len(a) == 2:
        d1 = int(a[0])
        d2 = int(a[1])
    else:
        my_list = [int(i) for i in a]
if d1>d2:
    temp = d1
    d1 = d2
    d2 = temp

dt1 = sum(my_list[d1-1:d2-1])
dt2 = sum(my_list) - dt1
result = dt1 if dt1<dt2 else dt2
print(result)

# result = 0
# for i in range(d1,d2):
#     result +=my_list[i-1]

# print(min(sum(my_list)-result,result))

3、小美的蛋糕切割

alt

import sys

n, m = 0, 0
i = 0
for line in sys.stdin:
    if i == 1 and n!=1:
        my_list = [[0] * m for _ in range(n)]
    elif i == 1 and n==1:
        my_list = [0] * m

    a = line.split()
    if i == 0:
        n = int(a[0])
        m = int(a[1])
    elif n!=1:
        my_list[i - 1] = [int(i) for i in a]
    elif n==1:
        my_list = [int(i) for i in a]

    i += 1

result = 10 ** 9

if n==1:
    all_sum = sum(my_list)
    for i in range(m):
        if i==0 : middle_result=0
        if result==0:break
        middle_result +=my_list[i]
        temp = abs(all_sum - middle_result*2)
        result = result if result < temp else temp
else:
    all_sum = sum([sum(i) for i in my_list])
    for i in range(m):
        if i==0 : middle_result=0
        if result==0:break
        middle_result += sum([k[i] for k in my_list])
        temp = abs(all_sum - middle_result*2)
        result = result if result < temp else temp

    if result!=0:
        for i in range(n):
            if i==0 : middle_result=0
            if result==0:break
            middle_result +=sum(my_list[i])
            temp = abs(all_sum - middle_result*2)
            result = result if result < temp else temp
print(result)


# for i in range(m - 1):
#     mid_res = abs(all_sum - sum([sum(k[i + 1 :]) for k in my_list]) * 2)
#     result = result if result < mid_res else mid_res


# for i in range(n - 1):
#     mid_res = abs(all_sum - sum([sum(k) for k in my_list[0 : i + 1]]) * 2)
#     result = result if result < mid_res else mid_res


# print(result)

4、小美的字符串变换

alt

5、小美的书上染色

alt

#秋招笔试##秋招#
全部评论

相关推荐

头像
08-28 09:05
门头沟学院
投递美团等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务