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

ตรวจสอบว่าสามารถสร้างสตริงสองอักขระโดยใช้คำที่กำหนดใน Python . ได้หรือไม่


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

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

เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -

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

ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -

ตัวอย่าง

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