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

โปรแกรมตรวจสอบสตริงที่พิมพ์ใช้สำหรับเขียนสตริงเป้าหมายในแป้นคีย์บอร์ดที่ติดอยู่หรือไม่อยู่ใน Python


สมมติว่าเรามีสองสตริง s และ t เราต้องการสร้าง t แต่มีปัญหาบางอย่างในแป้นพิมพ์ที่อักขระบางตัวติดอยู่ ดังนั้นจึงอาจเขียนได้ 1 ครั้งขึ้นไป เราต้องเช็คก่อนว่ามันเป็นไปได้ที่ typed s ตั้งใจจะเขียน t หรือเปล่า

ดังนั้น หากอินพุตเป็น s ="appppleee" t ="apple" ผลลัพธ์จะเป็น True

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

  • i :=0, j :=0
  • s_len :=ขนาดของ s
  • t_len :=ขนาดของเสื้อ
  • t_last :=สตริงว่าง
  • ในขณะที่เจ
  • ถ้าฉันเหมือนกับ s_len แล้ว
    • คืนค่าเท็จ
  • ถ้า s[i] เหมือนกับ t[j] แล้ว
    • t_last :=t[j]
    • ผม :=ผม + 1
    • j :=j + 1
  • มิฉะนั้นเมื่อ s[i] เหมือนกับ t_last แล้ว
    • ผม :=ผม + 1
  • มิฉะนั้น
    • คืนค่าเท็จ
  • ถ้าฉัน
  • คืนค่า จริง หากอักขระทั้งหมดใน s[จากดัชนี i ไปยังจุดสิ้นสุด] เหมือนกับ t_last
  • มิฉะนั้น
    • คืนค่า True
  • ตัวอย่าง

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

    def solve(s, t):
       i = j = 0
       s_len = len(s)
       t_len = len(t)
       t_last = ""
       while j < t_len:
          if i == s_len:
             return False
          if s[i] == t[j]:
             t_last = t[j]
             i += 1
             j += 1
          elif s[i] == t_last:
             i += 1
          else:
             return False
       if i < s_len:
          return all(char == t_last for char in s[i:])
       else:
          return True
    
    s = "appppleee"
    t = "apple"
    print(solve(s, t))

    อินพุต

    "appppleee", "apple"
    

    ผลลัพธ์

    True