当前位置:网站首页>leetcode 899. 有序队列
leetcode 899. 有序队列
2022-08-03 20:06:00 【会编程的露娜】
给定一个字符串 s 和一个整数 k 。你可以从 s 的前 k 个字母中选择一个,并把它加到字符串的末尾。
返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串 。
示例 1:
输入:s = “cba”, k = 1
输出:“acb”
解释:
在第一步中,我们将第一个字符(“c”)移动到最后,获得字符串 “bac”。
在第二步中,我们将第一个字符(“b”)移动到最后,获得最终结果 “acb”。
示例 2:
输入:s = “baaca”, k = 3
输出:“aaabc”
解释:
在第一步中,我们将第一个字符(“b”)移动到最后,获得字符串 “aacab”。
在第二步中,我们将第三个字符(“c”)移动到最后,获得最终结果 “aaabc”。
提示:
1 <= k <= S.length <= 1000
s 只由小写字母组成。
思路:
当k==1时,将原字符串看成一个环,从开头到结尾每次都将第一个字符放在末尾,保存这些字符中的字典序最小的情况,直接模拟。
当k>=2时,经过有限次的操作,一定可以变成升序,因为我们每次在前k个中都可以选择最大的那个放在最后,这样实际操作起来很麻烦,但和sort排好序的结果是一样的,所以直接sort返回即可。
class Solution {
public:
string orderlyQueue(string s, int k) {
if(k>1){
sort(s.begin(),s.end());
return s;
}
string ans=s;
for(int i=0;i<s.size();++i){
s=string{
s.begin()+1,s.end()}+s[0];
ans=min(ans,s);
}
return ans;
}
};
边栏推荐
猜你喜欢
Edge box + time series database, technology selection behind Midea's digital platform iBuilding
【微信小程序2】事件传参与数据同步[03]
「游戏建模干货」建模大师几步操作,学习经典,赶紧脑补一下吧
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
Benchmarking Lane-changing Decision-making for Deep Reinforcement Learning
那些年我写过的语言
揭秘5名运维如何轻松管理数亿级流量系统
使用 ReportLab 绘制 PDF
【leetcode】剑指 Offer II 008. 和大于等于 target 的最短子数组(滑动窗口,双指针)
云服务器如何安全使用本地的AD/LDAP?
随机推荐
pytorch框架实现老照片修复功能详细演示(GPU版)
收藏-即时通讯(IM)开源项目OpenIM-功能手册
微导纳米IPO过会:年营收4.28亿 君联与高瓴是股东
嵌入式分享合集27
149. The largest number on a straight line, and check the set
alicloud3搭建wordpress
1161 最大层内元素和——Leetcode天天刷【BFS】(2022.7.31)
花 30 美金请 AI 画家弄了个 logo,网友:画得非常好,下次别画了!
LeetCode 1374. 生成每种字符都是奇数个的字符串
Matlab paper illustration drawing template No. 42 - bubble matrix diagram (correlation coefficient matrix diagram)
第三方验收测试报告有什么作用?如何获取权威软件测试报告?
友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议
边缘盒子+时序数据库,美的数字化平台 iBuilding 背后的技术选型
使用 ReportLab 绘制 PDF
开源教育论坛| ChinaOSC
抖音web逆向教程
Node version switching tool NVM and npm source manager nrm
LeetCode 622. 设计循环队列
涨薪5K必学高并发核心编程,限流原理与实战,分布式计数器限流
async 和 await 原来这么简单