题解 | #二维数组操作#

二维数组操作

https://www.nowcoder.com/practice/2f8c17bec47e416897ce4b9aa560b7f4

import sys

#for line in sys.stdin:
#    a = line.split()
#    print(int(a[0]) + int(a[1]))


'''
使用While True循环接收数据,遇到输入错误,就break,退出循环
'''

while True:
    try:
        #用L保存表格的行列值,分别赋值给m,n
        L=input().split()
        m,n=int(L[0]),int(L[1])
       
        #用L2接收交换的坐标,分别赋值给x1,y1,x2,y2
        L2 = input().split()
        x1,y1,x2,y2 = int(L2[0]),int(L2[1]),int(L2[2]),int(L2[3])


        #接收要插入行的数值
        x = int(input())


        #接收要插入列的数值
        y = int(input())


        #接收要查询的单元格的坐标
        L3 =input().split()
        i,j =int(L3[0]),int(L3[1])


        def InitTable(m,n):
            '''
            初始化表格
            '''
            list1 = [[0]*n for i in range(m)]
            print("0")
            return list1


        def swap(x1,y1,x2,y2,list1,m,n):
            '''
            交换2个单元格的值
            '''

            if 0<=x1<m and 0<=y1<n and 0<=x2<m and 0<=y2<n:
                list1[x1][y1],list1[x2][y2]=list1[x2][y2],list1[x1][y1]
                print("0") 
            else:
                print("-1")


        def inertline(x,list1):
            '''
            插入一行在x的上方,行数大于9报错;x插入位置不能大于m-1的位置,保证插入位置有效
            '''
            if m>8 or x > m-1:
                print("-1") 
            else:
                list1.insert(x,[0]*n)
                list1 = [[0]*n for i in range(m)]
                print("0")



        def insertrow(y,list1):
            '''
            在y的左侧插入一列,列数大于9报错,Y插入位置超过大于n-1的位置,保证插入位置有效
            '''

            if n > 8 or y > n-1:
                print("-1") 
            else:
                for i in range(m):
                    list1[i].append(0)
                
                print("0")
                list1 = [[0]*n for i in range(m)]
        


        def  QueryTable(i,j):
            if 0<=i<m and 0<=j<n:
                print("0")
            else:
                print("-1")





        '''
        主函数,调用函数
        '''
        list1 = InitTable(m,n)
        swap(x1,y1,x2,y2,list1,m,n)
        inertline(x,list1)
        insertrow(y,list1)
        QueryTable(i,j)

    except:
        break

全部评论

相关推荐

评论
点赞
1
分享

创作者周榜

更多
牛客网
牛客企业服务