এই সমস্যায়, আমাদের একটি বড় সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল একটি প্রদত্ত সংখ্যার ক্ষুদ্রতম স্থানান্তর খুঁজে বের করা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
N = 4529016
আউটপুট
1024569
সমাধান পদ্ধতি
সমস্যার একটি সহজ সমাধান হল দীর্ঘ পূর্ণসংখ্যার মানকে অ্যাস্ট্রিং-এ সংরক্ষণ করে। তারপর আমরা স্ট্রিং বাছাই করব যা আমাদের ফলাফল। কিন্তু যদি কোন অগ্রণী শূন্য থাকে, আমরা সেগুলিকে প্রথম অ-শূন্য মানের পরে স্থানান্তর করব।
আমাদের সমাধানের কাজ চিত্রিত করার জন্য প্রোগ্রাম,
উদাহরণ
#include <bits/stdc++.h> using namespace std; string smallestNumPer(string s) { int len = s.length(); sort(s.begin(), s.end()); int i = 0; while (s[i] == '0') i++; swap(s[0], s[i]); return s; } int main() { string s = "4529016"; cout<<"The number is "<<s<<endl; cout<<"The smallest permutation of the number is "<<smallestNumPer(s); return 0; }
আউটপুট
The number is 4529016 The smallest permutation of the number is 1024569