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