Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python에서 정렬된 모음 문자열을 계산하는 프로그램

<시간/>

숫자 n이 있다고 가정하고 모음(a, e, i, o, u)으로만 구성된 크기가 n인 문자열의 수를 찾아야 하고 사전순으로 정렬되어 있습니다. 모든 유효한 인덱스 i에 대해 s[i]가 알파벳에서 s[i+1]과 같거나 그 앞에 올 때 문자열 s가 사전순으로 정렬된다고 말할 수 있습니다.

따라서 입력이 n =2와 같으면 ["aa", "ae", "ai", "ao", "au", "ee", "ei"와 같은 문자열이 많기 때문에 출력은 15가 됩니다. ", "eo", "eu", "ii", "io", "iu", "oo", "ou", "uu"].

이 문제를 해결하기 위해 다음 단계를 따릅니다. −

  • n이 1과 같으면
    • 반환 5
  • count :=크기가 6이고 처음에는 1로 채워진 배열
  • 3에서 n 사이의 i에 대해 다음을 수행합니다.
    • 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]
    • 개수[4] :=개수[4]+개수[5]
  • 총계:=0
  • 1~5 범위의 i에 대해 다음을 수행합니다.
    • total :=total + i*count[i]
  • 총 수익

이해를 돕기 위해 다음 구현을 살펴보겠습니다. −

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

입력

2

출력

15