原题链接:螺旋加密
参考代码:
import sys
def make(x):
res = bin(x)
res = res[2:]
while len(res) < 5:
res = '0' + res
return res
def make_full():
res = ''
for char in s:
if char == ' ':
res += '00000'
else:
res += make(ord(char) - ord('A') + 1)
return res
def ending():
for rows in matrix:
for num in rows:
print(num, end="")
sys.exit(0)
row, column, s = input().split()
row = int(row)
column = int(column)
newStr = make_full()
matrix = [[0] * column for _ in range(row)]
index = 0
left, right, top, bottom = 0, column - 1, 0, row - 1
while True:
for i in range(left, right):
matrix[top][i], index = newStr[index], index + 1
if index == len(newStr):
ending()
for i in range(top, bottom + 1):
matrix[i][right], index = newStr[index], index + 1
if index == len(newStr):
ending()
for i in range(right - 1, left, -1):
matrix[bottom][i], index = newStr[index], index + 1
if index == len(newStr):
ending()
for i in range(bottom, top, -1):
matrix[i][left], index = newStr[index], index + 1
if index == len(newStr):
ending()
left += 1
right -= 1
top += 1
bottom -= 10.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复