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)
深信服公司福利 891人发布