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

โปรแกรมค้นหาจำนวนลำดับด้วยตัวอักษร i, j และ k ของตัวอักษร x, y, z ใน Python


สมมติว่าเรามีสตริง s ที่มี "x", "y" และ "z" เราต้องหาจำนวนลำดับย่อยที่มีหมายเลข i ของอักขระ "x" ตามด้วยหมายเลข j ของอักขระ "y" แล้วตามด้วย k จำนวนอักขระ "z" โดยที่ i, j, k ≥ 1

ดังนั้น หากอินพุตเป็น s ="xxyz" ผลลัพธ์จะเป็น 3 เนื่องจากเราสามารถสร้าง "xyz" สองตัวและ "xxyz" หนึ่งรายการ

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

  • n :=ขนาดของ s

  • x :=0, y :=0, z :=0

  • สำหรับผมอยู่ในช่วง 0 ถึง n ทำ

    • นับ :=0

    • ถ้า s[i] เหมือนกับ "x" แล้ว

      • x :=x * 2

      • x :=x + 1

    • ถ้า s[i] เหมือนกับ "y" แล้ว

      • y :=y * 2

      • y :=y + x

    • ถ้า s[i] เหมือนกับ "z" แล้ว

      • z :=z * 2

      • z :=z + y

  • กลับ z

ตัวอย่าง

class Solution:
   def solve(self, s):
      n = len(s)

      x = 0
      y = 0
      z = 0
      for i in range(n):
         count = 0
         if s[i] == "x":
            x *= 2
            x += 1
         if s[i] == "y":
            y *= 2
            y += x
         if s[i] == "z":
            z *= 2
            z += y

      return z

ob = Solution()
print(ob.solve("xxyz"))

อินพุต

"xxyz"

ผลลัพธ์

3