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

파이썬에서 길이가 n인 모든 거꾸로 된 숫자를 찾는 프로그램

<시간/>

값 n이 있다고 가정합니다. 길이가 n인 모든 거꾸로 된 숫자를 찾아야 합니다. 매듭을 지을 때 거꾸로 된 숫자는 180도 뒤집었을 때 똑같이 나타나는 숫자입니다.

따라서 입력이 n =2와 같으면 출력은 ['11', '69', '88', '96']이 됩니다.

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

  • 함수 middle() 을 정의하십시오. 시간이 걸립니다.

  • x가 0이면

    • 빈 문자열의 목록을 반환

  • x가 1과 같으면

    • 요소 0, 1, 8의 새 목록을 반환

  • ret :=새 목록

  • 중간 :=중간(x − 2)

  • 중간에 각 m에 대해 수행

    • x가 n과 같지 않으면

      • ret 끝에 삽입("0" 연결 m 연결 "0")

    • ret 끝에 삽입("1" 연결 m 연결 "1")

    • ret 끝에 삽입("6" 연결 m 연결 "9")

    • ret 끝에 삽입("8" 연결 m 연결 "8")

    • ret 끝에 삽입("9" 연결 m 연결 "6")

  • 리턴 렛

  • 기본 방법에서 다음을 수행하십시오 -

  • n이 0이면

    • 새 목록 반환

  • 그렇지 않으면 middle(n)

    의 정렬된 목록을 반환합니다.

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

예시

class Solution:
   def solve(self, n):
      if not n:
         return []
      def middle(x=n):
         if not x:
            return [""]
         if x == 1:
            return list("018")
         ret = []
         mid = middle(x - 2)
         for m in mid:
            if x != n:
               ret.append("0" + m + "0")
            ret.append("1" + m + "1")
            ret.append("6" + m + "9")
            ret.append("8" + m + "8")
            ret.append("9" + m + "6")
         return ret
      return sorted(middle())
ob = Solution()
print(ob.solve(2))

입력

2

출력

['11', '69', '88', '96']