首页 > 试题广场 >

对称矩阵

[编程题]对称矩阵
  • 热度指数:9986 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 64M,其他语言128M
  • 算法知识视频讲解
输入一个N维矩阵,判断是否对称。

输入描述:
输入第一行包括一个数:N(1<=N<=100),表示矩阵的维数。
接下来的N行,每行包括N个数,表示N*N矩阵的元素。


输出描述:
可能有多组测试数据,对于每组数据,
输出"Yes!”表示矩阵为对称矩阵。
输出"No!”表示矩阵不是对称矩阵。
示例1

输入

4
16 19 16 6 
19 16 14 5 
16 14 16 3 
6 5 3 16 
2
1 2
3 4

输出

Yes!
No!
while True:
    try:
        n=int(input().strip())
        #print(n)
        arr=[]
        for i in range(n):
            arr.append(list(map(int,input().strip().split())))
        #print(arr)
        #list1=[]
        result=True
        for i in range(n):
            for j in range(n):
                if i!=j:
                    if arr[i][j]!=arr[j][i]:
                        result=False
                        break
        if not result:
            print('No!')
        else:
            print('Yes!')                   
    except:
        break
发表于 2019-08-03 08:54:20 回复(0)

python solution:

常规解法

while True:
    try:
        a, matrix = int(input()), []
        for i in range(a):
            matrix.append(input().split())
        res=True
        for i in range(a):
            for j in range(a):
                if matrix[i][j]!=matrix[j][i]:
                    res=False
                    break
        print("Yes!" if res else "No!")
    except:
        break

使用zip函数:

while True:
    try:
        a, matrix = int(input()), []
        for i in range(a):
            matrix.append(tuple(input().split()))

        print("Yes!" if matrix==list(zip(*matrix)) else "No!")
    except:
        break

注意,python3中要在前面加个list将zip object转为数组,如果是python2就不用加。

编辑于 2017-10-17 09:24:43 回复(1)
try:
    while 1:
        m = []
        for _ in range(input()):
            m.append(tuple(raw_input().split()))
        print 'Yes!' if m == zip(*m) else 'No!'
except:
    pass

发表于 2016-12-23 09:28:02 回复(0)

问题信息

难度:
3条回答 9268浏览

热门推荐

通过挑战的用户

查看代码