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