python 練習題 取字母

2022-09-14 22:18:30 字數 2230 閱讀 3819

1

#@author :whycai2#

@time :2021/3/18 21:5334

"""5

二維網格和乙個單詞,找出該單詞是否存在網格中

61.單詞必須按照字母順序,通過相鄰的單元格內的字母工程,其中 「相鄰」單元格是那些水平或垂直相鄰的單元格,同乙個單元格內的字母不允許重複使用78

例子:9

board = 10[

11['a','b','c','e'],

12['s','f','c','s'],

13['a','d','e','e']14]

1516

word = 'abcced' 返回true

17word = 'see' 返回true

18word = 'abcb' 返回false

1920

board和word只包含大小寫英文本母

21board、board[i],word 長度 >=1

22"""

23import

copy

2425

class

solution:

26def wordexist(self, board,word) ->bool:27#

網格 長、高,單詞的長度

28 boardlen =len(board[0])

29 boardhei =len(board)

30 wordlen =len(word)

3132

#單詞長度比網格還多

33if wordlen > boardlen * boardhei:return

false

3435

defwordcont(i, j, pos,w):

36'''

37判斷網格周圍是否存在該單詞

38:param i: 網格 橫座標

39:param j: 網格縱座標

40:param pos: 標識網格,其中的值為'1',代表已使用

41:param w: 單詞的下標

42:return:

43'''44#

標識該位置已使用

45 pos[i][j] = '1'

46#長度相同,單詞遍歷結束

47if wordlen ==w:return

true

4849

#從已找到的網格座標(i,j)的四周查詢下個單詞是否存在

50for a, b in [(1, 0), (0, 1), (-1, 0), (0, -1)]:

51 ia = i +a

52 jb = j +b

53if ia >= 0 and ia < boardhei and jb >= 0 and jb < boardlen and pos[ia][jb] != '1'

and board[ia][jb] ==word[w]:

54if wordcont(ia,jb,pos,w+1) :return

true55#

標識恢復初始原值,重新查詢

56 pos=copy.deepcopy(board)

57 pos[i][j] = '1'

58return

false

5960

#遍歷網格,如果第乙個單詞存在,則進入 wordcont()查詢剩餘單詞

61for i in

range(boardhei):

62for j in

range(boardlen):

63if board[i][j] == word[0] and wordcont(i,j,copy.deepcopy(board),1):

64return

true

65return

false

6667

print(solution().wordexist([['

a','

b','

c','

e'],['

s','

f','

c','

s'],['

a','

d','

e','

e']],'

abcced

'))

python書中練習題 python練習題

1 定義乙個空列表,接收從鍵盤輸入的整數,把列表傳給乙個從大到小排序的函式,再輸出排序後的列表的值 listex b 0 a int input 請輸入列表長度 while b a num int input 請輸入字元 b 1 print listex sum 0 for i in range 0...

python的練習題 Python練習題

1 使用while迴圈輸入1 2 3 4 5 6 8 9 10 i 0while i 10 i i 1 if i 7 continue print i 結果 e python python python test.py1 2 求1 100的所有數的和 i 0sum 0 while i 100 i 1...

python練習題目

三色球問題 有紅 黃 藍三種顏色的求,其中紅球 3 個,黃球 3 個,綠球 6 個。先將這 12 個球混合放在乙個盒子中,從中任意摸出 8 個球,程式設計計算摸出球的各種顏色搭配。print red tyellow tblue for red inrange 0,4 for yellow in ra...