題目連結:899. Orderly Queue
解題思路#
- 如果 k > 1 ,則一定可以把任兩個相鄰的字元交換,例如:abXYZ → aXYZb → XYZba → YZbaX → ZbaXY → baXYZ,因此只要對字串做排序便是答案。
- 如果 k = 1,則對字串做旋轉,找出最小的字典排序字串。
程式碼#
class Solution {
public:
string orderlyQueue(string s, int k) {
if (k > 1) {
sort(s.begin(), s.end());
return s;
}
else {
string res = s;
int len = s.length();
s += s;
for (int i = 0; i < len; i++) {
res = min(res, s.substr(i, len));
}
return res;
}
}
};