สมมติว่าเรามีรายการตัวเลข nums เราต้องตรวจสอบว่ารายการนี้เป็น palindrome หรือไม่
เช่น ถ้าอินพุตเป็น nums = [10, 12, 15, 12, 10] ผลลัพธ์จะเป็น True
ในการแก้ปัญหานี้ เราจะทำตามขั้นตอนดังนี้:
- n := ขนาดของ nums
- reset is_palindrome
- i := 0
- while i <= ผลหารของ (n / 2) และ n ไม่ใช่ 0 ทำ
- ถ้า nums[i] ไม่เท่ากับ nums[n - i - 1] แล้ว
- ตั้งค่า is_palindrome
- ออกจากลูป
- i := i + 1
- ถ้า nums[i] ไม่เท่ากับ nums[n - i - 1] แล้ว
- ถ้า is_palindrome ถูกตั้งค่า แล้ว
- คืนค่า False
- มิฉะนั้น
- คืนค่า True
ลองดูการนำไปใช้ดังต่อไปนี้เพื่อเข้าใจได้ดียิ่งขึ้น:
ตัวอย่าง
def solve(nums):
n = len(nums)
is_palindrome = 0
i = 0
while i <= n // 2 and n != 0:
if nums[i] != nums[n - i - 1]:
is_palindrome = 1
break
i += 1
if is_palindrome == 1:
return False
else:
return True
nums = [10, 12, 15, 12, 10]
print(solve(nums))
อินพุต
[10, 12, 15, 12, 10]
ผลลัพธ์
True