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

Python에서 주어진 문자열 시퀀스 규칙을 따른 후 n번째 시퀀스를 찾는 프로그램

<시간/>

두 개의 문자열 s, t가 있고 또 다른 양수 n이 주어진다고 가정하면 시퀀스 A의 n번째 항을 반환해야 합니다. 여기서 −

  • A[0] =s
  • A[1] =t
  • A[n] =A[n - 1] + A[n - 2] n이 짝수일 때, 그렇지 않으면 A[n] =A[n - 2] + A[n - 1].

예를 들어, s ="a"이고 t ="b"인 경우 시퀀스 A는 − ["a", "b", "ba"("a" + "b"), "bba"( "ㄴ" + "바"), "바바" ("바" + "바")]

따라서 입력이 s ="pk", t ="r", n =4와 같으면 출력은 "rrpkrpk"가 됩니다.

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

  • n이 0과 같으면
    • 반환
  • 그렇지 않고 n이 1과 같을 때
    • 반환
  • a :=s, b :=t
  • 2~n 범위의 i에 대해 다음을 수행합니다.
    • i mod 2가 0과 같으면
      • c :=b 연결
    • 그렇지 않으면
      • c :=b 연결
    • a :=b
    • b :=c
  • 반환 c

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

class Solution:
   def solve(self, s, t, n):
      if n == 0:
         return s
      elif n == 1:
         return t
         a = s
         b = t
      for i in range(2, n+1):
         if i%2 == 0:
            c = b + a
         else:
            c = a + b
            a = b
            b = c
      return c
ob = Solution()
print(ob.solve("pk", "r", 4))

입력

"pk", "r", 4

출력

rrpkrpk