如何将指定矩阵传入Python的setZeroes方法并打印输出以调试?
给
setZeroes方法传测试矩阵并添加调试打印的方案 我来帮你搞定这个问题,其实很简单,只需要在类的外面添加测试代码,同时在方法的关键节点插入打印语句就行,具体看下面的完整示例代码:
class Solution(object): def setZeroes(self, matrix): # 调试:打印原始矩阵 print("原始矩阵:") for row in matrix: print(row) col0 = False R = len(matrix) C = len(matrix[0]) for i in range(R): if matrix[i][0] == 0: col0 = True for j in range(1, C): if matrix[i][j] == 0: matrix[0][j] = 0 matrix[i][0] = 0 # 调试:打印标记完行/列后的矩阵 print("\n标记行和列后的矩阵:") for row in matrix: print(row) # 更新非首行首列的元素 for i in range(1, R): for j in range(1, C): if not matrix[i][0] or not matrix[0][j]: matrix[i][j] = 0 # 处理首行 if matrix[0][0] == 0: for j in range(C): matrix[0][j] = 0 # 处理首列 if col0: for i in range(R): matrix[i][0] = 0 # 调试:打印最终结果矩阵 print("\n最终处理后的矩阵:") for row in matrix: print(row) # ---------------------- 测试代码部分 ---------------------- # 定义你要测试的矩阵 test_matrix = [[1,1,1],[1,0,1],[1,1,1]] # 实例化Solution类 sol = Solution() # 调用setZeroes方法处理矩阵 sol.setZeroes(test_matrix)
关键说明:
- 测试代码的位置:必须写在
Solution类的外面,这样才能实例化类并调用方法。我们先定义好测试矩阵test_matrix,然后创建Solution的实例sol,再调用sol.setZeroes(test_matrix)把矩阵传进去。 - 调试打印的位置:我在三个关键节点加了打印:
- 方法开头:打印原始矩阵,方便你对比初始状态
- 标记完行和列的0之后:看看首行首列的标记是否正确
- 方法结尾:打印最终处理后的结果,验证逻辑是否生效
运行这个脚本之后,你就能看到清晰的调试输出,一步步理解这个算法的执行过程啦~
内容的提问来源于stack exchange,提问作者Sampath
相关产品推荐
相关产品推荐

