9月4号笔试题,ak
  第一题:数组拼接 
 import sys
if __name__ == "__main__":
    # 读取第一行的n
    n = int(sys.stdin.readline().strip())
    # n = 3
    # matrix=[[2, 5, 6, 7, 9, 5, 7],[1, 7, 4, 3, 4]]
    matrix = []
    while True:
        line = sys.stdin.readline().strip()
        if line == "":
            break
        else:
            s = list(map(int, line.split(",")))
            matrix.append(s)
    m = len(matrix)
    max_length = len(matrix[0])
    for nums in matrix:
        max_length = max(max_length, len(nums))
    times = max_length // n + 1
    res = []
    start = 0
    for time in range(times):
        for i in range(m):
            # n1 = len(matrix[i])
            res.extend(matrix[i][start:start+n])
        start += n
    print("".join(list(map(str, res)))) 第二题:零件加工的最大收益 n = 5 matrix = [[10, 1, 2], [15, 5, 6], [20, 4, 6], [15, 1, 5], [20, 4, 6,]] import sys def valid(s1, s2): if s2[-1] <= s1[1]: return True else: return False if __name__ == "__main__": # 读取第一行的n n = int(sys.stdin.readline().strip()) matrix = [] while True: line = sys.stdin.readline().strip() if line == "": break else: s = list(map(int, line.split())) matrix.append(s[1:]) matrix = sorted(matrix, key=lambda x: -x[-1]) print(matrix) n = len(matrix) dp = [0]*n dp[0] = matrix[0][0] for i in range(1, n): for j in range(i): if valid(matrix[j], matrix[i]): dp[i] = dp[j] + matrix[i][0] else: dp[i] = max(dp[i], dp[j]) print(max(dp))第三题:字符重建
s = input().strip()
stack = []
res, mutil = "", 0
for i in s:
    if i in ["[", "(", "{"]:
        stack.append([res, mutil])
        res, mutil = "", 0
    elif i in [")", "]", "}"]:
        last_res, cur_mutil = stack.pop()
        res = last_res + res*cur_mutil
    elif "0" <= i <= "9":
        mutil = mutil * 10 + int(i)
    else:
        res += i
print(res) 
查看1道真题和解析