from math import ceil
N = int(input())
m = ceil(N / 2)
lst = []
for i in range(N):
lst.append([' '] * N)
x = 0
y = N - 1
k = 0
while y != m:
if k % 2 == 0:
while y > 0:
lst[x][y] = '*'
if y >= 2 and lst[x][y - 2] == '*':
break
y -= 1
while x < N - 1:
lst[x][y] = '*'
if x < N - 2 and lst[x + 2][y] == '*':
break
x += 1
else:
while y < N - 1:
if y < N - 2 and lst[x][y + 2] == '*':
break
lst[x][y] = '*'
y += 1
while x > 0:
lst[x][y] = '*'
if x >= 2 and lst[x - 2][y] == '*':
break
x -= 1
k += 1
for i in range(N):
print(*lst[i])
代码可以正常工作,但是在最后一次测试中它说它超过了时间限制,在这种情况下我该怎么办?只是第一次
时间限制为 1 秒,从屏幕上可以看到,程序在 1 秒 92 毫秒内执行
我不认为它快得多,但它至少更简洁一点:
您的输出速度很慢,请先尝试将输出转换为字符串并输出,如下所示:
或像这样:
据我了解,不是 1092 毫秒,而是无穷大,他们只是抛出了无限循环。我得到它是这样的: