首页 > 菜鸡求问拼多多笔试第一题,过了5%
头像
柴柴总
编辑于 2020-09-01 21:23
+ 关注

菜鸡求问拼多多笔试第一题,过了5%

def fenge(i, j):
    if i == j&nbs***bsp;i + j == N-1&nbs***bsp;N % 2 != 0 and int(N/2)== i&nbs***bsp;N % 2 != 0 and int(N/2)== j:
        return True
    return False
N = int(input())
matric = [[0 for col in range(N)] for row in range(N)]
row_start = 0
row_end = N - 1
col_start = 0
col_end = N - 1
index = 1
while row_start <= row_end and col_start <= col_end:
    # 上
    i = row_start
    j = col_end
    while j >= col_start:
        if fenge(i, j) == False:
            matric[i][j] = index
            index += 1
        j -= 1
    # 左
    i = row_start + 1
    j = col_start
    while i < row_end:
        if fenge(i, j) == False:
            matric[i][j] = index
            index += 1
        i += 1
    # 下
    i = row_end
    j = col_start
    while j <= col_end:
        if fenge(i, j) == False:
            matric[i][j] = index
            index += 1
        j += 1
    # 右
    i = row_end - 1
    j = col_end
    while i > row_start:
        if fenge(i, j) == False:
            matric[i][j] = index
            index += 1
        i -= 1
    row_start += 1
    row_end -= 1
    col_start += 1
    col_end -= 1

for row in range(N):
    string = ""
    for col in range(N):
        string += str(matric[row][col]) + " "
    string.strip()
    print(string)


代码如上,本地测试两个样例都对了

全部评论

(5) 回帖
加载中...
话题 回帖

推荐话题

相关热帖

近期热帖

历年真题 真题热练榜 24小时
技术(软件)/信息技术类
查看全部

近期精华帖

热门推荐