Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

โปรแกรมตรวจสอบว่าคำศัพท์พบในเมทริกซ์ตัวอักษรได้หรือไม่ใน Python

สมมติว่าเรามีเมทริกซ์บอร์ดตัวอักษร แต่ละเซลล์เก็บตัวอักษรหนึ่งตัว เรายังมีสตริงชื่อ target เราต้องตรวจสอบว่า target สามารถหาได้ในเมทริกซ์โดยการอ่านซ้าย-ขวา หรือบน-ล่าง แบบเดี่ยวทาง (unidirectional) หรือไม่

เช่น ถ้าอินพุตเป็นเมทริกซ์:

ants
spin
laps
คำ = "tip" ผลลัพธ์จะเป็น True เพราะคอลัมน์ที่ 3 (บนลงล่าง) สร้างคำว่า "tip"

ขั้นตอนการแก้ปัญหา

  1. สำหรับแต่ละแถว i ใน board:
    • รวมตัวอักษรใน i เป็นคำ
    • ถ้า word อยู่ใน i คืนค่า True
  2. i := 0
  3. ในขณะที่ i < จำนวนแถวของ board:
    • j := รวมสตริงจากตัวอักษรคอลัมน์ที่ i ใน board
    • i := i + 1
    • ถ้า word อยู่ใน j คืนค่า True
  4. คืนค่า False

ตัวอย่างการใช้งาน

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