注册一亩三分地论坛,查看更多干货!
您需要 登录 才可以下载或查看附件。没有帐号?注册账号 
x
面试官是默罕默德。面试两题,没在面经看到, 但很简单。 1)Transpose
2) Cipher
具体题和答案见下。 求加米看面经 !!!!
第一题 Transpose:
给一个string message, 按行优先,列其次的方式放入矩阵。 再以列优先,行其次的方式读出来。 算作加密完成
# message1 = "One does not simply walk into Mordor"
# rows1, cols1 = 6, 6
# message2 = "1.21 gigawatts!"
# rows2, cols2 = 5, 3
# rows3, cols3 = 3, 5
'''
0 1 2
3 4 5
6 7 8
'''
def transpose(message, ROW, COL):
board = [[] for _ in range(ROW)]
# print(board)
N = len(message)
#O(n)
for i in range(N):
# print(i)
ro = i // COL
board[ro].append(message[i])
# print(board)
res = ""
#O(n)
for j in range(COL):
for i in range(ROW):
res+=(board[i][j])
return res
# print(transpose("012345678", 3, 3))
# print(transpose(message1, rows1, cols1))
or s in message:
new_s = s
if (ord('a') <= ord(s) and ord(s) <= ord('z')):
idx = ord(s) - ord('a')
# print(idx)
new_s = lst[idx]
elif (ord('A') <= ord(s) and ord(s) <= ord('Z')):
idx = ord(s) - ord('A')
convert = ord('A') - ord('a')
# print(idx)
new_s = lst[idx].upper()
res+=new_s
return res
print(cipher(message, key))
print(cipher(message2, key))
|