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

পাইথনে অ্যারে ফর্ম ইন্টিজারে যোগ করা (Add to Array-Form of Integer in Python)


সমস্যা বিবরণ

একটি নম্বর অ্যারে ফর্মে দেওয়া আছে (যেমন 534 → [5,3,4])। এই নম্বরের সাথে একটি ইন্টিজার K যোগ করে ফলাফল অ্যারে ফর্মে ফেরত দিতে হবে।

উদাহরণ: [5,3,4] + 78 = 612 → [6,1,2]

সমাধানের পদ্ধতি

  1. অ্যারে ডিজিটগুলো স্ট্রিং-এ কনভার্ট করে কনক্যাটেনেট করুন।
  2. স্ট্রিংকে ইন্টিজার বানান, K যোগ করুন।
  3. ফলাফল স্ট্রিং-এ কনভার্ট করে প্রতিটি ডিজিট ইন্টিজার বানিয়ে লিস্টে ফেরত দিন।

পাইথন উদাহরণ

class Solution(object):
    def addToArrayForm(self, A, K):
        num_A = int(''.join(str(d) for d in A))
        res = list(str(num_A + K))
        return list(map(int, res))

ob1 = Solution()
print(ob1.addToArrayForm([5,3,4], 78))

ইনপুট

[5,3,4] 78

আউটপুট

[6, 1, 2]

ম্যানুয়াল অডিশন (O(n) টাইম, O(1) এক্সট্রা স্পেস - আউটপুট বাদে)

def addToArrayForm(A, K):
    i = len(A) - 1
    carry = 0
    res = []
    
    while i >= 0 or K > 0:
        digit_a = A[i] if i >= 0 else 0
        digit_k = K % 10
        total = digit_a + digit_k + carry
        res.append(total % 10)
        carry = total // 10
        i -= 1
        K //= 10
    
    if carry:
        res.append(carry)
    
    return res[::-1]

পাইথন ৩.৮+ walrus operator ব্যবহার করে

def addToArrayForm(A, K):
    res = []
    i = len(A) - 1
    while i >= 0 or K:
        digit_a = A[i] if i >= 0 else 0
        total = digit_a + (K % 10)
        res.append(total % 10)
        K = total // 10 + K // 10
        i -= 1
    return res[::-1]
  1. পাইথনে ইন্টিজারকে অক্টাল স্ট্রিংএ কনভার্ট কীভাবে করবেন?

  2. পাইথনে ইন্টিজারকে হেক্সাডেসিমাল স্ট্রিংএ কনভার্ট কীভাবে করবেন?

  3. পাইথন ৩-এ রয় ইনপুট ইন্টিজার কিনা যাচাই করা

  4. পাইথনে স্ট্রিং থেকে ইন্টিজার মান বের করা