当前位置: 首页> 教育> 大学 > leetcode 899. Orderly Queue

leetcode 899. Orderly Queue

时间:2025/9/14 19:05:11来源:https://blog.csdn.net/wuyexiaobailong/article/details/141775278 浏览次数:0次

原题链接

You are given a string s and an integer k. You can choose one of the first k letters of s and append it at the end of the string.

Return the lexicographically smallest string you could have after applying the mentioned step any number of moves.

实际上如果k大于1,那么就会出现任意两个字符都能改变其在字符串中相对位置的情况,也就是能进行排序了。

如果k等于1,那么就找一个位置作为开始,遍历一下,找出字典序最小的那个排序就行。只是如果字符串中子串有规律,例如全是相同字符,或者重复出现ab之类的,那么就会出现最坏的情况,将这个最坏的情况优化掉。

class Solution {
public:string orderlyQueue(string s, int k) {if (k ==0) return s;else if (k >1) {sort(s.begin(), s.end());return s;} else {int mn = 0,slen = s.size();for (int k = 1; k< slen; k++) {for(int l = 0; l < slen; l++) {if (s[(k+l)%slen] < s[(mn+l)%slen]) {mn = k;break;} else if (s[(k+l)%slen] > s[(mn+l)%slen]) {break;} else if (l == slen-1) return s.substr(mn) + s.substr(0, mn);}}return s.substr(mn) + s.substr(0, mn);}}
};

关键字:leetcode 899. Orderly Queue

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: