LC 899. 有序队列
https://leetcode-cn.com/problems/orderly-queue/
还是阅读中文题目比较舒服,而且也比较方便在上面看官方解答。有时候官方解答看的也是含糊的时候,再去主站看看其他人的解法。这题题解写的非常清楚,K>=2的时候可以交换任意数字,最终达到全排列状态。
注意这个归纳过程很有意思:
- 先证明s[i]和s[i+1]之间可以交换
- 然后证明s[i]和s[j]之间可以交换
- 所以s最终可以达到全排列状态
class Solution: def orderlyQueue(self, S: str, K: int) -> str: if K == 1: ans = S for i in range(len(S)): s = S[i:] + S[:i] if s < ans: ans = s else: ans = ''.join(sorted(S)) return ans