筆試程式設計題彙總 9

2021-10-09 11:05:44 字數 3708 閱讀 5031

0代表黑棋,1代表白棋,找出被白棋包圍的黑棋並吃掉,返回吃掉之後的結果

import sys

from copy import deepcopy

"""4

1101

1011

1001

1111

6101001

110100

111011

010101

111111

010100

41111

0101

1101

0010

"""def

get_zeros

(n):

zeros =

for idx in

range

(n):[0

]*n)

return zeros

defget_connected_domain

(data_matrix, pos, init_mask)

: init_mask[pos[0]

][pos[1]

]=1# left

if pos[0]

>

0and data_matrix[pos[0]

-1][pos[1]

]==0and init_mask[pos[0]

-1][pos[1]

]==0:

init_mask = get_connected_domain(data_matrix,

(pos[0]

-1, pos[1]

), init_mask)

# right

if pos[0]

<

len(data_matrix)-1

and data_matrix[pos[0]

+1][pos[1]

]==0and init_mask[pos[0]

+1][pos[1]

]==0:

init_mask = get_connected_domain(data_matrix,

(pos[0]

+1, pos[1]

), init_mask)

# up

if pos[1]

>

0and data_matrix[pos[0]

][pos[1]

-1]==

0and init_mask[pos[0]

][pos[1]

-1]==

0:init_mask = get_connected_domain(data_matrix,

(pos[0]

, pos[1]

-1), init_mask)

# down

if pos[1]

<

len(data_matrix)-1

and data_matrix[pos[0]

][pos[1]

+1]==

0and init_mask[pos[0]

][pos[1]

+1]==

0:init_mask = get_connected_domain(data_matrix,

(pos[0]

, pos[1]

+1), init_mask)

return init_mask

defconnected_domain

(data_matrix)

: n =

len(data_matrix)

zeros = get_zeros(n)

edge_connect_matrix_list =

# row 1

for idx in

range

(n):

if data_matrix[0]

[idx]==0

: connect_domain = get_connected_domain(data_matrix,(0

,idx)

, deepcopy(zeros)

)for idx in

range

(n):

if data_matrix[n-1]

[idx]==0

: connect_domain = get_connected_domain(data_matrix,

(n-1

,idx)

, deepcopy(zeros)

)if n >2:

for idx in

range

(n-2):

if data_matrix[idx+1]

[0]==

0:connect_domain = get_connected_domain(data_matrix,

(idx+1,

0), deepcopy(zeros)

)for idx in

range

(n-2):

if data_matrix[idx+1]

[n-1]==

0:connect_domain = get_connected_domain(data_matrix,

(idx+

1,n-1)

, deepcopy(zeros)

) total_connect = get_zeros(

len(data_matrix)

)for m in edge_connect_matrix_list:

for row_idx, row in

enumerate

(m):

for c_idx, d in

enumerate

(row)

: total_connect[row_idx]

[c_idx]

+= d

for row_idx, row in

enumerate

(total_connect)

:for c_idx, d in

enumerate

(row)

:if d ==

0and data_matrix[row_idx]

[c_idx]==0

: data_matrix[row_idx]

[c_idx]=1

return data_matrix

if __name__==

"__main__"

: n = sys.stdin.readline(

).strip(

) n =

int(n)

data_list =

for idx in

range

(n):

line = sys.stdin.readline(

).strip(

) line =

[int

(d)for d in line]

result = connected_domain(data_list)

for l in result:

print

(' '

.join(

[str

(_l)

for _l in l]

))

該程式只通過65%,應該還有問題,題意理解不夠全面。

筆試程式設計題彙總 2

描述 給乙個整數陣列num,和乙個鎮整數k,能否把陣列num切成k個子集,且各個子集的和相等,返回布林型別 輸入輸出 輸入 乙個整數陣列num和乙個正整數k 輸出 返回true或者false,bool型別 樣例 輸入 4,3,2,3,5,2,1 4 輸出 true 解釋 可以分解為4個子集,他們的和...

筆試程式設計題彙總 6

給乙個長度為n的整數陣列,將這個陣列分成m段,每一段的和為這一段的權重,所有段的權重的最大值為這次分割的權重,求所有分割中最小的權重 輸入描述 第一行是兩個整數,表示n,m m n 第二行數n個空格分割的整數 輸出 輸出所有分割中最小的權重 樣例 input 5 31 4 2 3 5 output ...

筆試 程式設計題

1.class a class b public a int main 2.int main 3.int func int a int main little endian int main char p char a 2 printf 0x x,0x x,0x x p 1 p,short p re...