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

Chương trình đếm chuỗi nguyên âm được sắp xếp trong Python

Giả sử chúng ta có một số n, chúng ta phải tìm số chuỗi có kích thước n chỉ bao gồm các nguyên âm (a, e, i, o, u) và chúng được sắp xếp theo từ vựng. Chúng ta có thể nói rằng một chuỗi s được sắp xếp theo từ điển khi đối với tất cả các chỉ mục hợp lệ i, s [i] giống hoặc đứng trước s [i + 1] trong bảng chữ cái.

Vì vậy, nếu đầu vào là n =2, thì đầu ra sẽ là 15 vì có nhiều chuỗi như ["aa", "ae", "ai", "ao", "au", "ee", "ei "," eo "," eu "," ii "," io "," iu "," oo "," ou "," uu "].

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

  • nếu n giống 1, thì
    • trả về 5
  • count:=một mảng có kích thước 6 và ban đầu được lấp đầy bởi 1
  • đối với tôi trong phạm vi từ 3 đến n, thực hiện
    • count [1]:=count [1] + count [2] + count [3] + count [4] + count [5]
    • count [2]:=count [2] + count [3] + count [4] + count [5]
    • count [3]:=count [3] + count [4] + count [5]
    • count [4]:​​=count [4] + count [5]
  • tổng số:=0
  • đối với tôi trong phạm vi từ 1 đến 5, hãy thực hiện
    • tổng số:=tổng số + i * số lượng [i]
  • tổng trả lại

Ví dụ

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

def solve(n):
   if n==1:
      return 5
   count = [1 for i in range(6)]
   for i in range(3,n+1):
      count[1] = count[1]+count[2]+count[3]+count[4]+count[5]
      count[2] = count[2]+count[3]+count[4]+count[5]
      count[3] = count[3]+count[4]+count[5]
      count[4] = count[4]+count[5]
   total = 0
   for i in range(1,6):
      total += i*count[i]
   return total

n = 2
print(solve(n))

Đầu vào

2

Đầu ra

15