1117 - 重新排列
题目描述
现在有一个 1818 位以内的自然数,你可以将组成这个数的各位数字重新排列,得到一个数值为最小的新数,但新数的位数保持不变。
请编程打印出重新排列后的新数。(如:231231 重新排序后位数不变的最小数是 123 ,而 2310523105 重新排序后位数不变的最小数是 10235)
输入
一个整数(位数 ≤18位)。
输出
重新排列后最小的新数。
样例
输入
复制
382
输出
复制
238
输入
复制
231050
输出
复制
100235
#include<bits/stdc++.h>
using namespace std;
int main()
{
string s;
char a;
cin>>s;
sort(s.begin(),s.end());
if(s[0]=='0')
{
for(int i=0;i<s.size();i++)
{
if(s[i]!='0')
{
swap(s[0],s[i]);
break;
}
}
}
cout<<s;
}