776667 发表于 2020-5-8 16:55:14

def fun389(chart):

    def near_check(x,y):
      count = 4
      for i in [,,,]:
            if i < 0 or i < 0:
                continue
            try:
                if chart]]:
                  count -= 1
            except IndexError:
                continue
      return count

    perimeter = 0
    for x in range(len(chart)):
      for y in range(len(chart)):
            if chart:
                perimeter += near_check(x,y)
    return perimeter

Lao_Long 发表于 2020-5-11 21:43:17

占楼

Lemon233 发表于 2020-5-15 22:38:49

def graid_lake(k=None):
    k = [
      ,
      ,
      ,
      
    ]
    total_grid = 0
   
    for (x, a) in enumerate(k):
      for (y, b) in enumerate(a):
            # x,y为横纵坐标,a,b为各自元素
            if b == 1:
                # 判断是否为顶边或者上边可以有边
                if (x == 0) or (k == 0):
                  top = 1
                else:
                  top = 0
                  
                # 判断是否为底边或者下边可以有边
                if (x == len(k) - 1) or (k == 0):
                  bottom = 1
                else:
                  bottom = 0
                  
                # 判断是否为最左边或者左边可以有边
                if (y == 0) or (k == 0):
                  left = 1
                else:
                  left = 0
                  
                # 判断是否为最右边或者右边可以有边
                if (y == len(a) - 1) or (k == 0):
                  right = 1
                else:
                  right = 0
                  
                total_grid += (top + bottom + right + left)
      return total_grid

timeislife 发表于 2020-5-17 08:11:32

def fun389(grid):
    result = 0
    row = 0#同下
    for i in grid:
      square = 0#用于计数,以便找到遍历到哪一个格子里
      for j in i:
            if j == 1:
                if i == 0 and square != 0:
                  result += 1
                elif row == 0:
                  result += 1
                if grid == 0 and row != 0:
                  result += 1
                elif square == 0:
                  result += 1
            square += 1
      row += 1

    result *= 2
    return result

'''
输入:[
,
,
,
]
输出:16
输入:[
,
,
,
,
]
输出:28

Rodrigez10 发表于 2020-5-19 21:46:16

def solution(matrix):
    #输入一个矩阵,获得矩阵的长和宽
    width = len(matrix)
    lenth = len(matrix)
    perimeter = 0

    for i in range(width):
      for j in range(lenth):
            if matrix == 1:
                #判断该方格上面是否有陆地
                if i > 0:
                  if matrix == 0:
                        perimeter += 1
                else:
                  perimeter += 1

                #判断方格左边是否有陆地
                if j > 0:
                  if matrix == 0:
                        perimeter += 1
                else:
                  perimeter += 1

                #判断方格右边是否有陆地
                if j < (lenth-1):
                  if matrix == 0:
                        perimeter += 1
                else:
                  perimeter += 1

                #判断方格下方是否有陆地
                if i < (width-1):
                  if matrix == 0:
                        perimeter += 1
                else:
                  perimeter += 1

    return perimeter

test = [
,
,
,

]
print(solution(test))

huainian2333 发表于 2020-5-22 17:41:39

本帖最后由 huainian2333 于 2020-5-22 19:29 编辑

def fun(ls):
    n1,n2 = sum(),0
    for i in range(len(ls)):
      for j in range(len(ls)-1):
            if ls == ls == 1:
                n2 += 1
    for i in range(len(ls)):
      for j in range(len(ls)-1):
            if ls == ls == 1:
                n2 += 1
    return (4 * n1 - 2 * n2)

ls = eval(input())
print(fun(ls))

zwhe 发表于 2020-5-31 10:46:32

{:10_334:}

Herry2020 发表于 2020-5-31 11:57:29

def fun389(grid):
        i = len(grid)
        k = 0
        for a in range(i):
                for b in range(i):
                        if grid == 1:
                                k += 1
        result = k*4
        count = 0
        for a in range(i):
                for b in range(i-1):
                        if grid + grid == 2:
                                count += 1
        for a in range(i-1):
                for b in range(i):
                        if grid + grid == 2:
                                count += 1
        result = result - count*2
        return result
       
grid1 = [
,
,
,

]

print(fun389(grid1))
页: 1 [2]
查看完整版本: Python:每日一题 389