1.题意,给出一个字符串,通过任意次所给操作,将原字符串变成字典序最小的字符串。
2.分析关键:1.当K>=2 时,可以实现任意字相邻字符的交换。这是就可用冒泡排序对原串排序,从而得到字典序最小的字符串。
2.当K=1 时,可以将字符串看出头 与尾 相连的一个循环串。然后需要我们去找一个截断点,使得整体最小。
class Solution {
public:
string orderlyQueue(string S, int K) {
if(K>=2){
sort(S.begin(),S.end());
return S;
}
string ans=S;
for(int i=1;i<S.size();i++){
string tp=S.substr(i)+S.substr(0,i);
if(tp<ans) ans=tp;
}
return ans;
}
};