কম্পিউটার

পাইথনে ডিজিটের উপর সর্বাধিক k সংলগ্ন অদলবদলের পরে ন্যূনতম সম্ভাব্য পূর্ণসংখ্যা খুঁজে বের করার প্রোগ্রাম


ধরুন আমাদের কাছে num নামক একটি স্ট্রিং আছে যা একটি খুব বড় পূর্ণসংখ্যার প্রতিনিধিত্ব করে এবং এর আরেকটি মান k আছে। আমরা সর্বাধিক k সময়ে মানের দুটি সন্নিহিত সংখ্যা অদলবদল করতে পারি। আমরা পেতে পারি সর্বনিম্ন মান খুঁজে বের করতে হবে.

সুতরাং, যদি ইনপুটটি num ="5432" k =4 এর মত হয়, তাহলে আউটপুট হবে 2453 কারণ প্রথম সংখ্যাটি 5432। তারপর প্রথম পর্বের পরে এটি 4532, তারপর 4523, তারপর 4253 এবং চূড়ান্ত পর্বে 2453 হবে।

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

  • min_num :=সংখ্যার অঙ্কগুলি সাজান

  • i :=0, to_find :=0

  • যদিও num min_num এবং k> 0 এবং i

    • indx :=আইটেমের সূচী সূচক i থেকে num এ খুঁজে পাওয়া যায়

    • যখন indx -1 এর মতো নয়, do

      • যদি indx - i <=k, তারপর

        • num :=num[সূচী 0 থেকে i-1] concatenate num[indx] concatenatenum[index i থেকে indx-1] concatenate num[index indx+1 থেকে শেষ পর্যন্ত]

        • k :=k -(indx - i)

        • i :=i + 1

        • to_find :=0

        • indx :=আইটেমের সূচী সূচী i থেকে num এ খুঁজে পেতে

      • অন্যথায়,

        • লুপ থেকে বেরিয়ে আসুন

    • to_find :=to_find + 1

  • রিটার্ন নম্বর

উদাহরণ

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

def solve(num, k):
   min_num = sorted(list(num))
   min_num = ''.join(min_num)
   i = 0
   to_find = 0
   while num != min_num and k > 0 and i < len(num):
      indx = num.find(str(to_find), i)
      while indx != -1:
         if indx - i <= k:
            num = num[:i] + num[indx] + num[i:indx] + num[indx+1:]
            k -= (indx - i)
            i += 1
            to_find = 0
            indx = num.find(str(to_find), i)
         else:
            break
      to_find += 1
   return num

num = "5432"
k = 4
print(solve(num, k))

ইনপুট

"5432", 4

আউটপুট

2453

  1. পাইথন ব্যবহার করে একটি বাইনারি গ্রিড সাজানোর জন্য সর্বনিম্ন অদলবদল খুঁজে বের করার প্রোগ্রাম

  2. পাইথনে মার্জ করার পরে ন্যূনতম সংখ্যার রঙগুলি খুঁজে বের করার প্রোগ্রামটি থাকে

  3. পাইথনে প্রদত্ত সংখ্যার সমস্ত অঙ্কের যোগফল খুঁজে বের করার প্রোগ্রাম

  4. সংখ্যার ন্যূনতম যোগফল নির্ণয়ের জন্য পাইথন প্রোগ্রাম