สมมุติว่าคิวเต็ม เราต้องตรวจสอบว่าองค์ประกอบที่ต่อเนื่องกันในคิวเป็นคู่ที่ต่อเนื่องกันหรือไม่
ดังนั้น หากอินพุตเป็น que =[3,4,6,7,8,9] ผลลัพธ์จะเป็น True
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- q :=กำหนดคิวและแทรกองค์ประกอบทั้งหมดจากรายการที่กำหนดลงใน q
- temp :=รายการใหม่
- ในขณะที่ q ไม่ว่างเปล่า ให้ทำ
- แทรกองค์ประกอบด้านหน้าของคิวลงใน temp และลบองค์ประกอบด้านหน้าออกจากคิว
- temp2 :=รายการใหม่
- ในขณะที่อุณหภูมิไม่ว่างให้ทำ
- แทรกองค์ประกอบสุดท้ายของ temp ลงใน temp2
- ลบองค์ประกอบสุดท้ายออกจากชั่วคราว
- ผลลัพธ์ :=จริง
- ในขณะที่ขนาดของ temp2> 1 ทำ
- x :=องค์ประกอบสุดท้ายของ temp2
- ลบองค์ประกอบสุดท้ายจาก temp2
- y :=องค์ประกอบสุดท้ายของ temp2
- ลบองค์ประกอบสุดท้ายจาก temp2
- ถ้า |x - y| ไม่ใช่ 1 แล้ว
- ผลลัพธ์ :=เท็จ
- แทรก x และ y ลงใน q
- ถ้าขนาดของ temp2 เป็น 1 แล้ว
- แทรกองค์ประกอบสุดท้ายของ temp2 ลงใน q
- ผลตอบแทน
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
import queue def solve(que): q = queue.Queue() for i in que: q.put(i) temp = [] while q.qsize() != 0: temp.append(q.queue[0]) q.get() temp2 = [] while len(temp) != 0: temp2.append(temp[len(temp) - 1]) temp.pop() result = bool(True) while len(temp2) > 1: x = temp2[len(temp2) - 1] temp2.pop() y = temp2[len(temp2) - 1] temp2.pop() if abs(x - y) != 1: result = False q.put(x) q.put(y) if len(temp2) == 1: q.put(temp2[len(temp2) - 1]) return result que = [3,4,6,7,8,9] print(solve(que))
อินพุต
[3,4,6,7,8,9]
ผลลัพธ์
True