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

ทฤษฎีนักบินอวกาศโบราณใน Python


สมมติว่า er มีพจนานุกรมสตริง พจนานุกรมนี้แสดงการจัดลำดับพจนานุกรมของนักบินอวกาศในสมัยโบราณ ดังนั้นถ้าเรามีสตริง s เราต้องตรวจสอบว่ามันเป็นสตริงที่จัดเรียงตามพจนานุกรมตามพจนานุกรมนักบินอวกาศโบราณหรือไม่

ดังนั้น หากอินพุตเป็นเหมือน dictionary ="bdc", s ="bbbb h ddd i cccc" ผลลัพธ์จะเป็น True

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

  • l :=ขนาดของ astro_dict

  • ถ้า l เท่ากับ 0 แล้ว

    • คืนค่า True

  • ผม :=0

  • สำหรับแต่ละอักขระ c ใน s ทำ

    • ถ้า c ใน astro_dict แล้ว

      • ในขณะที่ i

        • ผม :=ผม + 1

      • ถ้า i>=l หรือ astro_dict[i] ไม่ใช่ c แล้ว

        • คืนค่าเท็จ

  • คืนค่า True

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

ตัวอย่าง

class Solution:
   def solve(self, astro_dict, s):
      l = len(astro_dict)
      if l == 0:
         return True
      i = 0
      for c in s:
         if c in astro_dict:
            while i < l and astro_dict[i] != c:
               i += 1
            if i >= l or astro_dict[i] != c:
               return False
      return True
ob = Solution()
print(ob.solve("bdc","bbbb h ddd i cccc"))

อินพุต

"bdc","bbbb h ddd i cccc"

ผลลัพธ์

True