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)




#荣耀笔试##笔经#
全部评论

相关推荐

点赞 2 评论
分享
牛客网
牛客企业服务