কম্পিউটার

পাইথনে বাইনারি সংখ্যাকে দশমিক পূর্ণসংখ্যাতে প্রতিনিধিত্বকারী লিঙ্কযুক্ত তালিকাকে রূপান্তর করার প্রোগ্রাম


ধরুন আমরা একটি একক লিঙ্ক তালিকা আছে. লিঙ্ক করা তালিকাটি প্রথমে সবচেয়ে উল্লেখযোগ্য সংখ্যা সহ একটি বাইনারি সংখ্যা উপস্থাপন করছে, আমাদের এটি দশমিক সংখ্যা হিসাবে ফিরিয়ে দিতে হবে।

সুতরাং, ইনপুট যদি [1,0,1,1,0] এর মত হয়, তাহলে আউটপুট হবে 22

এটি সমাধান করতে, আমরা এই পদক্ষেপগুলি অনুসরণ করব -

  • l :=একটি নতুন তালিকা
  • যদিও নোড নাল না হয়, তবে
      করুন
    • l-এর শেষে নোডের মান সন্নিবেশ করান
    • নোড:=নোডের পাশে
  • k :=0, v:=0
  • আমি l - 1 থেকে 0 এর রেঞ্জের আকারে, 1 দ্বারা হ্রাস করুন, করুন
    • যদি l[i] 1 এর মত হয়, তাহলে
      • v :=v + 2^k
    • k :=k + 1
  • রিটার্ন v

আরো ভালোভাবে বোঝার জন্য আসুন নিচের বাস্তবায়ন দেখি -

উদাহরণ

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
class Solution:
   def solve(self, node):
      l = []
      while node:
         l.append(node.val)
         node=node.next
         k = 0
         v=0
         for i in range(len(l)-1,-1,-1):
            if (l[i]==1):
            v += (2**k)
k+=1
return v
ob = Solution()
head = make_list([1,0,1,1,0])
print(ob.solve(head))

ইনপুট

[1,0,1,1,0]

আউটপুট

22

  1. পাইথনে লিঙ্ক করা তালিকাকে জিগ-জ্যাগ বাইনারি ট্রিতে রূপান্তর করার প্রোগ্রাম

  2. পাইথন প্রোগ্রামে দশমিককে বাইনারি নম্বরে রূপান্তর করুন

  3. পাইথন প্রোগ্রাম দশমিককে বাইনারি নম্বরে রূপান্তর করতে

  4. ফ্লোট দশমিককে অক্টাল সংখ্যায় রূপান্তর করতে পাইথন প্রোগ্রাম