📅  最后修改于: 2023-12-03 15:12:05.137000             🧑  作者: Mango
本程序旨在计算给定矩阵中每个元素中存在的数字。
程序需要输入一个 n 行 m 列的矩阵,其中 $0 < n, m \leq 100$,矩阵元素为整数。
程序将返回一个 n 行 m 列的矩阵,其中每个元素表示输入矩阵对应位置上存在的数字。
def count_digits(matrix):
"""
计算给定矩阵的每个元素中存在的数字
:param matrix: 输入矩阵,包含 n 行 m 列
:return: 返回一个 n 行 m 列的矩阵,其中每个元素表示输入矩阵对应位置上存在的数字
"""
n = len(matrix)
m = len(matrix[0])
result = [[0 for j in range(m)] for i in range(n)] # 初始化输出矩阵,全部赋值为 0
for i in range(n):
for j in range(m):
digits = set(str(matrix[i][j]))
result[i][j] = len(digits)
return result
matrix = [
[1234, 5678, 90],
[12345, 67890, 1]
]
print(count_digits(matrix))
输出:
[[4, 4, 2], [5, 5, 1]]
对于每个矩阵元素,我们可以使用 set 将其转换为字符串,并使用 set 的特性自动去除重复字符,最后统计 set 的长度即可得到该元素中存在的数字数。此外,我们可以使用嵌套列表生成式初始化输出矩阵,效率相比先定义空列表再使用两个 for 循环赋值更高。