Computer >> Máy Tính >  >> Lập trình >> Python

Chương trình tìm số dãy con với i, j và k số chữ cái x, y, z trong Python

Giả sử chúng ta có một chuỗi s với "x", "y" và "z" s, chúng ta phải tìm số dãy con có i số ký tự "x", tiếp theo là j số ký tự "y" và tiếp theo là k số ký tự "z" trong đó i, j, k ≥ 1.

Vì vậy, nếu đầu vào là s =​​"xxyz", thì đầu ra sẽ là 3, vì chúng ta có thể tạo hai "xyz" và một "xxyz"

Để giải quyết vấn đề này, chúng tôi sẽ làm theo các bước sau:

  • n:=kích thước của s

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

  • đối với tôi trong phạm vi từ 0 đến n, hãy thực hiện

    • đếm:=0

    • nếu s [i] giống với "x" thì

      • x:=x * 2

      • x:=x + 1

    • nếu s [i] giống với "y" thì

      • y:=y * 2

      • y:=y + x

    • nếu s [i] giống với "z" thì

      • z:=z * 2

      • z:=z + y

  • trả về z

Ví dụ

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"))

Đầu vào

"xxyz"

Đầu ra

3