숫자 n이 있다고 가정합니다. 세븐세그먼트 디스플레이에 표시될 때 해당 숫자의 미러 이미지가 주어진 숫자와 동일한지 여부를 확인해야 합니다.
따라서 입력이 n =818과 같으면 출력은 True가 됩니다.
미러 이미지는 동일합니다.
이 문제를 해결하기 위해 다음 단계를 따릅니다. −
- num_str :=n을 문자열로
- 범위 0에서 num_str - 1 크기의 i에 대해
- num_str[i]가 ['0', '1', '8']이 아니면
- 거짓을 반환
- num_str[i]가 ['0', '1', '8']이 아니면
- 왼쪽 :=0
- 오른쪽 :=num_str의 크기 - 1
- 왼쪽 <오른쪽, do
- num_str[left]가 num_str[right]와 같지 않으면
- 거짓을 반환
- 왼쪽 :=왼쪽 + 1
- 오른쪽 :=오른쪽 - 1
- num_str[left]가 num_str[right]와 같지 않으면
- 참 반환
예시
이해를 돕기 위해 다음 구현을 살펴보겠습니다. −
def solve(n): num_str = str(n) for i in range(len(num_str)): if num_str[i] not in ['0', '1', '8']: return False left = 0 right = len(num_str) - 1 while left < right: if num_str[left] != num_str[right]: return False left += 1 right -= 1 return True n = 818 print(solve(n))
입력
818
출력
True