สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าภาพสะท้อนของตัวเลขนั้นเหมือนกับหมายเลขที่กำหนดหรือไม่เมื่อแสดงบนจอแสดงผล Seven Segment
ดังนั้นหากอินพุตเท่ากับ n =818 เอาต์พุตจะเป็น True
ภาพสะท้อนในกระจกก็เหมือนกัน
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- num_str :=n เป็นสตริง
- สำหรับฉันในช่วง 0 ถึงขนาด num_str - 1 ทำ
- ถ้า num_str[i] ไม่ใช่ ['0', '1', '8'] แล้ว
- คืนค่าเท็จ
- ถ้า num_str[i] ไม่ใช่ ['0', '1', '8'] แล้ว
- ซ้าย :=0
- ขวา :=ขนาดของ num_str - 1
- ขณะซ้าย <ขวา ทำ
- ถ้า num_str[left] ไม่เหมือนกับ num_str[right] แล้ว
- คืนค่าเท็จ
- ซ้าย :=ซ้าย + 1
- ขวา :=ขวา - 1
- ถ้า num_str[left] ไม่เหมือนกับ num_str[right] แล้ว
- คืนค่า True
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
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