鬼画符门之点点大阵(python)

题目描述

小艺师从鬼画符门派,由于学艺不精只能画点点大阵。 一天师父要求小艺画多重点点大阵,师父会将1重的点点大阵给小艺,小艺如果需要完成2重的点点大阵,那么她需要将1重点点大阵看作一个整体作为一重点点大阵中的一点。小艺想让你帮忙先画一个。

输入描述:

输入点点大阵的边长a,点点大阵的层数n。(1<=a^n<=1000) 以下a行每行输入a个字符‘*’或‘ ’。

输出描述:

输出点点大阵。

示例

输入
3 2
***
*
***
输出
*********
* * *
*********
***
*
***
*********
* * *
*********
class Solution:
    def __init__(self) -> None:
        pass
    
    def solution(self, a, n, vector):
        result = []
        for i in range(0, n-1):
            result = []
            m = len(vector)
            sum_max_row = 0
            for i in range(0, len(vector)):
                if sum_max_row <= len(vector[i]):
                    sum_max_row = len(vector[i])
#            print(vector)
            for x in range(0, m*a):
                row_x = x%m
                count_x = int(x/a)
                sum_current_row = len(vector[count_x])
#                print("sum_current_row="+str(sum_current_row))
                result_per_row = ""
                for y in range(0, sum_current_row * a):
                    if sum_current_row==1:
                        col_y = y
                    else:
                        col_y = y%sum_current_row
                    try:
                        result_per_row = result_per_row + vector[row_x][col_y]
                    except:
                        if y<= sum_current_row*a-3:
                            result_per_row = result_per_row + " "
                        else:
                            pass
                result.append(result_per_row)
            vector = result
#        print(result)
        return result

if __name__ == "__main__":


    
    arr_temp = [int(item) for item in input().strip().split()]
    
    a = int(arr_temp[0])
    n = int(arr_temp[1])
    
    vector = []
    for i in range(a):
        vector.append(input().strip())
    
    
    sol = Solution()
    result = sol.solution(a, n, vector)

    print("\n".join('%s' %w for w in result))

通过率 10%,主要是不理解边长为2,3层点点大阵应该怎么排布

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值