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

Python의 시작 끝 범위에서 연속적으로 증가하는 모든 숫자를 찾는 프로그램

<시간/>

두 개의 숫자 시작과 끝이 있다고 가정하고 [start, end] 범위의 모든 숫자 e가 포함되고 e의 숫자가 연속적으로 증가하도록 정렬된 정수 목록을 찾아야 합니다. 지속적으로 증가하는 숫자의 예는 5678이지만 169는 그렇지 않습니다.

따라서 입력이 start =10 end =150과 같으면 출력은 [12, 23, 34, 45, 56, 67, 78, 89, 123]

이 됩니다.

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

  • s :=문자열 "123456789"로 9자리 모두
  • a :=새 목록
  • 0에서 8 사이의 i에 대해 다음을 수행합니다.
    • i + 1에서 9 사이의 j에 대해 다음을 수행합니다.
      • x :=(인덱스 i에서 j-1까지 s의 부분 문자열) 숫자로
      • 시작 <=x <=끝이면
        • x 삽입
  • 목록을 정렬하고 반환

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

def solve(start, end):
   s = "123456789"
   a = []
   for i in range(9):
      for j in range(i + 1, 10):
         x = int(s[i:j])
         if start <= x <= end:
            a += (x,)
   return sorted(a)

start = 10
end = 150
print(solve(start, end))
를 반환합니다.

입력

10, 150

출력

[12, 23, 34, 45, 56, 67, 78, 89, 123]