第一题通过50%, 第二题不会,第三题通过,第四题通过50%。
回头搜一下为什么Q1Q4,搞清楚为什么没有accept?
# Q1
class Solution:
def area(self, grid):
m, n = len(grid), len(grid[0])
def dfs(i, j):
if 0 <= i < m and 0 <= j < n and grid[i][j] == ".":
grid[i][j] = "X"
return 1 + dfs(i + 1, j) + dfs(i - 1, j) + dfs(i, j + 1) + dfs(i, j - 1)
return 0
res = 0
for i in range(m):
for j in range(n):
if grid[i][j] == ".":
res = max(res, dfs(i, j))
return res
while 1:
try:
numbers = list(map(int, input().split()))
m, n = numbers[0], numbers[1]
grid = [[] for i in range(m)]
for i in range(m):
line = input().split()
for j in range(len(line[0])):
grid[i].append(line[0][j])
solution1 = Solution()
ans = solution1.area(grid)
print(ans, end='')
except:
break
# Q3
class Solution:
def hcf(self, x, y):
if x > y:
smaller = y
else:
smaller = x
for i in range(1, smaller + 1):
if ((x % i == 0) and (y % i == 0)):
hcf = i
return hcf
solution1 = Solution()
m = int(input())
n = int(input())
ans1 = m % n
ans2 = solution1.hcf(m, n)
print(ans1)
print(ans2)
# Q4
class Solution:
def add(self, Mat1, Mat2):
if isinstance(Mat1, list) and isinstance(Mat2, list):
return [[m1 + m2 for m1, m2 in zip(i, j)] for i, j in zip(Mat1, Mat2)]
def delete(self, Mat1, Mat2):
if isinstance(Mat1, list) and isinstance(Mat2, list):
return [[m1 - m2 for m1, m2 in zip(i, j)] for i, j in zip(Mat1, Mat2)]
def mul(self, Mat1, Mat2):
if isinstance(Mat1, list) and isinstance(Mat2, list):
return [[sum(map(lambda x: x[0] * x[1], zip(i, j))) for j in zip(*Mat2)] for i in zip(*Mat1)]
def transpose(self, Mat):
m, n = len(Mat), len(Mat[0])
transposed = [[0] * m for _ in range(n)]
for i in range(m):
for j in range(n):
transposed[j][i] = Mat[i][j]
return transposed
def transposeAndMul(self, Mat1, Mat2):
transMat2 = self.transpose(Mat2)
ans = self.mul(Mat1, transMat2)
return ans
numbers = list(map(int, input().split()))
m1, n1, m2, n2 = numbers[0], numbers[1], numbers[2], numbers[3]
op = int(input())
grid1 = [[] for i in range(m1)]
for i in range(m1):
line = input().split()
for j in range(n1):
grid1[i].append(int(line[j]))
grid2 = [[] for i in range(m2)]
for i in range(m2):
line = input().split()
for j in range(n2):
grid2[i].append(int(line[j]))
solution1 = Solution()
if op == 0:
res = solution1.add(grid1, grid2)
for i in range(len(res)):
for j in range(len(res[0]) - 1):
print(res[i][j], end=' ')
print(res[i][len(res[0]) - 1])
elif op == 1:
res = solution1.delete(grid1, grid2)
for i in range(len(res)):
for j in range(len(res[0]) - 1):
print(res[i][j], end=' ')
print(res[i][len(res[0]) - 1])
elif op == 2:
res = solution1.mul(grid1, grid2)
for i in range(len(res)):
for j in range(len(res[0]) - 1):
print(res[i][j], end=' ')
print(res[i][len(res[0]) - 1])
elif op == 3:
res = solution1.transposeAndMul(grid1, grid2)
for i in range(len(res)):
for j in range(len(res[0]) - 1):
print(res[i][j], end=' ')
print(res[i][len(res[0]) - 1])