Python如何获取包含左上角grid[0][0]元素的二维列表所有矩形子集
实现思路
所有包含左上角grid[0][0]的矩形,本质上只需要确定右下角的坐标即可:左上角固定为(0,0),只要右下角的行索引≥0、列索引≥0,就能保证矩形包含左上角。对于m行n列的二维列表,总共有m*n个符合要求的矩形,和你给出的示例输出数量(3行3列共9个)完全对应。
具体实现(Python示例)
首先构造你给出的示例二维列表:
grid = [ "001", "111", "111" ]
然后遍历所有可能的右下角坐标,生成对应矩形:
rows = len(grid) cols = len(grid[0]) result = [] # 遍历右下角的行索引i for i in range(rows): # 遍历右下角的列索引j for j in range(cols): # 生成当前(i,j)对应的矩形 current_rect = [] for k in range(i+1): # 取第k行的前j+1个字符 current_rect.append(grid[k][:j+1]) result.append(current_rect) # 按要求格式输出 for rect in result: print('\n'.join(rect)) # 每个矩形之间空一行,和示例输出格式对齐 print()
输出验证
运行上述代码得到的输出和你给出的预期完全一致,每个矩形对应一组右下角坐标:
- 右下角(0,0) → 输出单个
0 - 右下角(0,1) → 输出
00 - 右下角(0,2) → 输出
001 - 右下角(1,0) → 输出两行各1个字符
0和1 - 以此类推,直到右下角(2,2)输出完整的3行3列表格。
内容的提问来源于stack exchange,提问作者CoderTang
相关产品推荐
相关产品推荐

