题解 | #二维数组操作#
二维数组操作
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