#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
//得到一个字符串 排位位数的 代码
int getCount(string str){
int count = 0;
for(int i=str.size()-1;i >=0;i--){
if(str[i]>str[i-1])
return ++count;
count++;
}
};
//传入一个字符串 和需要尾排序的字符
string sortTail(string str,int count){
//将字符串最后一位 放入length-count位上面
//将后面count位升序排序
int length = str.size();
//获取最好一个字符
string lastStr = str.substr(length-1,1);
//获得应处理的前count个字符
string dealStr = str.substr(length-count-1,count);
//argorithm 排序函数 这里默认是升序排列
sort(dealStr.begin(),dealStr.end());
//替换掉最后一个
str= str.replace(length-count-1,1,lastStr);
//替换掉该处理的字符串
str = str.replace(length-count,count,dealStr);
return str;
}
int main(){
string str="1432";
int count = getCount(str);
str = sortTail(str,count);
cout << str;
}
网友评论