快轉到主要內容
  1. Leetcode/

[LeetCode] 899. Orderly Queue

·
LeetCode sort string
目錄

題目連結:899. Orderly Queue

解題思路
#

  1. 如果 k > 1 ,則一定可以把任兩個相鄰的字元交換,例如:abXYZ → aXYZb → XYZba → YZbaX → ZbaXY → baXYZ,因此只要對字串做排序便是答案。
  2. 如果 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;
        }
    }
};