Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ตรวจสอบว่า Queue Elements เรียงกันเป็นคู่ใน Python . หรือไม่


สมมุติว่าคิวเต็ม เราต้องตรวจสอบว่าองค์ประกอบที่ต่อเนื่องกันในคิวเป็นคู่ที่ต่อเนื่องกันหรือไม่

ดังนั้น หากอินพุตเป็น 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