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

Tìm số chuỗi con có các ký tự có thể được sắp xếp lại để tạo thành từ đã cho trong Python


Giả sử chúng ta có một chuỗi S (tất cả các chữ cái đều là chữ thường), chúng ta phải tìm tổng số tất cả các chuỗi con có độ dài bốn mà các ký tự có thể được sắp xếp lại để tạo thành từ này "chim".

Vì vậy, nếu đầu vào là "birdb", thì đầu ra sẽ là 2.

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

  • cnt:=0

  • đối với tôi trong phạm vi từ 0 đến kích thước của s - 3, hãy thực hiện

    • bird:=một mảng với [0, 0, 0, 0]

    • đối với j trong phạm vi i đến i + 4, thực hiện

      • nếu s [j] giống với 'b' thì

        • chim [0]:=chim [0] + 1

      • ngược lại khi s [j] giống với 'i' thì

        • chim [1]:=chim [1] + 1

      • ngược lại khi s [j] giống với 'r' thì

        • chim [2]:=chim [2] + 1

      • ngược lại khi s [j] giống với 'd' thì

        • chim [3]:=chim [3] + 1

      • nếu con chim giống với [1,1,1,1], thì

        • cnt:=cnt + 1

  • trả lại cnt

Ví dụ

Hãy cùng chúng tôi xem cách triển khai sau để hiểu rõ hơn -

def number_of_occurrence(s):
   cnt = 0
   for i in range(0, len(s) - 3):
      bird = [0, 0, 0, 0]
      for j in range(i, i + 4):
         if s[j] == 'b':
            bird[0] += 1
         elif s[j] == 'i':
            bird[1] += 1
         elif s[j] == 'r':
            bird[2] += 1
         elif s[j] == 'd':
            bird[3] += 1
      if bird == [1,1,1,1]:
         cnt += 1
   return cnt
s = "birdb"
print(number_of_occurrence(s))

Đầu vào

"birdb"

Đầu ra

2