拼多多笔试题0805

第一题

第一题


    # 输入
    s = input()
    length = len(s)
    k = length // 4

    s1 = s[:k]; s2 = s[k:2*k]
    s3 = s[2*k:3*k]; s4 = s[3*k:4*k]
    s3 = s3[::-1]; s4 = s4[::-1]

    res = []
    for i in range(k+1):
        res.append([' ']*(k+1))

    # 第一行
    for i in range(k):
        res[0][i] = s1[i]
    # 最后一列
    for i in range(k):
        res[i][k] = s2[i]
    # 最后一行
    for i in range(k,0,-1):
        res[k][i] = s3[i-1]
    # 第一列
    for i in range(k,0,-1):
        res[i][0] = s4[i-1]
    # 输出
    for i in range(k+1):
        for j in range(k+1):
            if j != k:
                print(res[i][j],end="")
            else:
                print(res[i][j])

第二题


import sys
import math

def helper(s):
    if len(s) == 1:
        return 1
    if s[0] == '0' and s[-1] == '0':
        return 0
    if s[0] == '0' or s[-1] == '0':
        return 1
    return len(s)

if __name__ == '__main__':

    # 输入
    s = input()
    cnt = 0
    # 拆分为两部分
    for i in range(1, len(s)):
        a = helper(s[:i]); b = helper(s[i:])
        cnt += a*b
    # 这里好像未去重
    print(cnt)

第三题


import sys

s = input()
rows, index = map(int,s.split(' '))
if rows == 0 or index >= rows:
    print(-1)
    sys.exit()

re = []
for i in range(rows):
    s = input()
    re.append(list(map(int,s.split(' '))))

max_length = 0
index_i = 0
# 计算 index 认识的人
set_index = set(re[index])
for i in range(rows):
    if i != index and i not in set_index:
        set_i = set(re[i])
        length = len(set_index & set_i)
        if length > max_length:
            max_length = length
            index_i = i

if max_length == 0:
    print(-1)
    sys.exit()
if index_i == index:
    print(index_i+1)
    sys.exit()
print(index_i)

第四题