Giả sử chúng ta có một bảng ký tự ma trận. Nơi mỗi ô chứa một ký tự. Chúng tôi cũng có một chuỗi gọi là target, chúng tôi phải kiểm tra xem mục tiêu có thể được tìm thấy trong ma trận hay không bằng cách đi từ trái sang phải hoặc từ lên xuống theo một hướng đơn hướng hay không.
Vì vậy, nếu đầu vào giống như
a | n | t | s |
s | p | tôi | n |
l | a | p | s |
Word =“mẹo”
thì đầu ra sẽ là True, bạn có thể thấy cột thứ ba (từ trên xuống dưới) đang hình thành "tip".
Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau -
- đối với mỗi tôi trong hội đồng quản trị, hãy làm
- i:=tạo từ từ các ký tự có trong i
- nếu từ có trong i, thì
- trả về True
- i:=0
- while i
- j:=tạo chuỗi từ các ký tự của cột thứ i trong bảng
- i:=i + 1
- nếu từ ở trong j, thì
- trả về True
Ví dụ
Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -
def solve(board, word): for i in board: i = "".join(i) if word in i: return True i = 0 while i < len(board): j = "".join([col[i] for col in board]) i += 1 if word in j: return True return False board = [["a","n","t","s"],["s","p","i","n"],["l","a","p","s"]] word = "tip" print(solve(board, word))
Đầu vào
[["a","n","t","s"], ["s","p","i","n"], ["l","a","p","s"]], "tip"
Đầu ra
True