ภาพรวม
บทความนี้สาธิตวิธีตรวจสอบว่าอาร์เรย์ nums มีเลขคี่ติดกัน 3 ตัวหรือไม่ โดยคืนค่า True หากพบ และ False หากไม่พบ
ขั้นตอนการแก้ปัญหา
- ตรวจสอบความยาวอาร์เรย์: ถ้าน้อยกว่า 3 คืนค่า
Falseทันที - วนลูปตั้งแต่ดัชนี 0 ถึง
len(nums) - 3 - ตรวจสอบว่า
nums[i],nums[i+1],nums[i+2]เป็นเลขคี่ทั้งสามตัว (หาร 2 เหลือ 1) - ถ้าพบ ให้คืนค่า
Trueทันที - จบลูปไม่พบ ให้คืนค่า
False
ตัวอย่างโค้ด (Python)
def solve(nums):
length = len(nums)
if length == 1 or length == 2:
return False
else:
for i in range(len(nums) - 2):
if nums[i] % 2 != 0 and nums[i+1] % 2 != 0 and nums[i+2] % 2 != 0:
return True
return False
nums = [18, 15, 2, 19, 3, 11, 17, 25, 20]
print(solve(nums))
อินพุต
[18,15,2,19,3,11,17,25,20]
เอาต์พุต
True
คำอธิบาย
ในตัวอย่าง พบลำดับเลขคี่ติดกัน 3 ตัวคือ [3, 11, 17] ที่ดัชนี 4, 5, 6 จึงคืนค่า True