DSTJZ


私信TA

用户名:dotcpp0721777

访问量:9080

签 名:

时间可以解决许多问题

等  级
排  名 48
经  验 12027
参赛次数 13
文章发表 324
年  龄 18
在职情况 学生
学  校 狗熊岭23届毕业生
专  业

  自我简介:

TA的其他文章


参考代码:

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 -= 1


 

0.0分

0 人评分

  评论区

  • «
  • »