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

ตรวจสอบว่าสตริง 2 ตัวอักษรสามารถสร้างได้จากคำที่กำหนดหรือไม่ใน Python


สมมติว่าเรามีสตริง s ความยาว 2 และมีรายการคำ w โดยทุกคำมีความยาว 2 เราต้องตรวจสอบว่าสามารถต่อคำจาก w ได้ และสตริงที่ต่อกันมี s เป็น substring หรือไม่

เช่น ถ้าอินพุตเป็น s = "no", w = ["ol", "on", "ni", "to"] ผลลัพธ์จะเป็น True เนื่องจากเราสามารถต่อสตริงได้เป็น "onol" ซึ่งมี "no"

ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:

  • n := จำนวนคำใน w
  • char_0 := False, char_1 := False
  • สำหรับ i ในช่วง 0 ถึง n - 1 ทำ
    • ถ้า w[i] เท่ากับ s แล้ว
      • คืนค่า True
    • ถ้า s[0] เท่ากับ w[i, 1] แล้ว
      • char_0 := True
    • ถ้า s[1] เท่ากับ w[i, 0] แล้ว
      • char_1 := True
    • ถ้า char_0 และ char_1 ทั้งคู่เป็น true แล้ว
      • คืนค่า True
  • คืนค่า False

ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:

ตัวอย่าง

def solve(s, w):
    n = len(w)
    char_0 = False
    char_1 = False
    for i in range(n):
        if w[i] == s:
            return True
        if s[0] == w[i][1]:
            char_0 = True
        if s[1] == w[i][0]:
            char_1 = True
        if char_0 and char_1:
            return True
    return False

s = "no"
w = ["ol", "on", "ni", "to"]
print(solve(s, w))

อินพุต

"no", ["ol", "on", "ni", "to"]

ผลลัพธ์

True