এই সমস্যায়, আমাদের একটি বড় সংখ্যা দেওয়া হয়েছে। আমাদের কাজ হল একটি প্রদত্ত সংখ্যার ক্ষুদ্রতম স্থানান্তর খুঁজে বের করা।
সমস্যাটি বোঝার জন্য একটি উদাহরণ নেওয়া যাক,
ইনপুট
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