สมมติว่าเรามีกระดานอักขระเมทริกซ์ โดยที่แต่ละเซลล์มีอักขระอยู่ นอกจากนี้เรายังมีสตริงที่เรียกว่าเป้าหมาย เราต้องตรวจสอบว่าสามารถหาเป้าหมายได้ในเมทริกซ์โดยไปทางเดียวจากซ้ายไปขวาหรือขึ้นลงล่างหรือไม่
ดังนั้นหากอินพุตเป็นแบบ
ก | n | t | s |
s | p | ฉัน | n |
ล | ก | p | s |
คำว่า =“ทิป”
จากนั้นผลลัพธ์จะเป็น True คุณสามารถเห็นคอลัมน์ที่สาม (บนลงล่าง) กำลังสร้าง "เคล็ดลับ"
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- สำหรับแต่ละคนที่ฉันอยู่ในเรือ ทำ
- i :=สร้างคำจากอักขระที่มีอยู่ใน i
- ถ้ามีคำอยู่ใน i แล้ว
- คืนค่า True
- ผม :=0
- ในขณะที่ฉัน <นับแถวของกระดาน ทำ
- j :=สร้างสตริงจากอักขระของคอลัมน์ ith ในบอร์ด
- ผม :=ผม + 1
- ถ้าคำอยู่ใน j แล้ว
- คืนค่า True
- คืนค่าเท็จ
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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))
อินพุต
[["a","n","t","s"], ["s","p","i","n"], ["l","a","p","s"]], "tip"
ผลลัพธ์
True