কম্পিউটার টিউটোরিয়াল

পাইথনে লিংকড লিস্ট-এর সব এলিমেন্ট জোড়ায় (Pair) আছে কিনা যাচাই করা

ধরি আমাদের একটি সিংলি লিংকড লিস্ট আছে। আমাদের যাচাই করতে হবে লিস্টের প্রতিটি এলিমেন্ট জোড়ায় আছে কিনা, অর্থাৎ সব এলিমেন্ট জোড় সংখ্যকবার উপস্থিত।

উদাহরণস্বরূপ, list = [2, 5, 5, 2, 3, 3] হলে আউটপুট হবে True।

সমাধানের ধাপসমূহ

  • xor_res := 0, current_node := লিস্টের হেড
  • যতক্ষণ current_node null না হয়:
    • xor_res := xor_res XOR current_node.val
    • current_node := current_node.next
  • xor_res যদি শূন্য হয় তবে true, অন্যথায় false রিটার্ন করুন

উদাহরণ

class ListNode:
    def __init__(self, data, next=None):
        self.val = data
        self.next = next

def make_list(elements):
    head = ListNode(elements[0])
    for element in elements[1:]:
        ptr = head
        while ptr.next:
            ptr = ptr.next
        ptr.next = ListNode(element)
    return head

def solve(head):
    xor_res = 0
    current_node = head
    while current_node != None:
        xor_res = xor_res ^ current_node.val
        current_node = current_node.next
    return False if xor_res else True

head = make_list([2, 5, 5, 2, 3, 3])
print(solve(head))

ইনপুট

[2, 5, 5, 2, 3, 3]

আউটপুট

True
  1. পাইথনে চেক করা: লিস্টের সকল উপাদান সমান কিনা

  2. পাইথনে লিস্ট অফ লিস্টে এলিমেন্ট আছে কিনা যাচাই করুন

  3. পাইথনে লিস্ট অফ লিস্টে একটি লিস্ট আছে কিনা যাচাই করুন

  4. পাইথনে চেক করা সব লিস্ট এলিমেন্ট একই কিনা