当前位置:网站首页>力扣解法汇总899-有序队列
力扣解法汇总899-有序队列
2022-08-03 18:55:00 【失落夏天】
目录链接:
力扣编程题-解法汇总_分享+记录-CSDN博客
GitHub同步刷题项目:
https://github.com/September26/java-algorithms
原题链接:力扣
描述:
给定一个字符串 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 只由小写字母组成。
来源:力扣(LeetCode)
链接:https://leetcode.cn/problems/orderly-queue
著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。
解题思路:
* 解题思路: * 看k的大小,如果k大于1,那么其实就等于插入排序,所以经过若干轮的排序后,一定能形成最小字典字符串。 * 如果k=1,则找出字典上最小字符串即可
代码:
public class Solution899 {
public String orderlyQueue(String s, int k) {
StringBuilder builder = new StringBuilder();
char[] chars = s.toCharArray();
if (k > 1) {
int[] charNums = new int[26];
for (int i = 0; i < chars.length; i++) {
char aChar = chars[i];
charNums[aChar - 'a']++;
}
for (int i = 0; i < charNums.length; i++) {
int num = charNums[i];
if (num == 0) {
continue;
}
for (int n = 0; n < num; n++) {
builder.append((char) (i + 'a'));
}
}
return builder.toString();
}
for (int i = 0; i < chars.length; i++) {
if (builder.length() == 0) {
builder.append(s);
continue;
}
for (int j = 0; j < builder.length(); j++) {
int newIndex = i + j;
newIndex = newIndex >= builder.length() ? newIndex - builder.length() : newIndex;
char newChar = chars[newIndex];
char lastMinChar = builder.charAt(j);
if (newChar == lastMinChar) {
continue;
}
if (newChar > lastMinChar) {
break;
}
builder.setLength(0);
builder.append(s.substring(i));
builder.append(s, 0, i);
}
}
return builder.toString();
}
}边栏推荐
- 5v2.1a给5v2a充电行吗
- 机器学习的方法总结
- B628芯片电路图,B628升压IC的PCB布局PCB
- excel写入不完全sheet.append方法(openpyxl)
- 七夕之前,终于整出了带AI的美丽秘笈
- 在线监控机房内的UPS电源及运行环境,解决方案来了
- warnings.warn(“Title is more than 31 characters. Some applications may not be able to read the file
- WEB 渗透之RCE
- 读取 resources 目录下的文件路径的九种方式,你知道多少?
- 【Azure 事件中心】使用Azure AD认证方式创建Event Hub Consume Client + 自定义Event Position
猜你喜欢
随机推荐
Install porterLB
cocos creater 3.x 插件安装方法
要想成为黑客,离不开这十大基础知识
MYSQL误删数据恢复
typescript学习笔记
15、学习MySQL NULL 值处理
B628芯片电路图,B628升压IC的PCB布局PCB
讯方实训云平台——加速教育高质量发展的“数字底座”!
大佬们,flinkcdc 2.2 版本采集sqlserver只能采集到全量的数据,不能采集到增量的数
一文搞懂│php 中的 DI 依赖注入
Unable to start SinkRunner: { policy:org.apache.flume
读取 resources 目录下的文件路径的九种方式,你知道多少?
Online monitoring of UPS power supply and operating environment in the computer room, the solution is here
OneNote 教程,如何在 OneNote 中设置页面格式?
借助kubekey极速安装Kubernetes
When does MySQL use table locks and when to use row locks?You should know this
87.(cesium之家)cesium热力图(贴地形)
快手通过国际权威信息安全和隐私保护认证,安全能力达到国际领先水平
excel写入不完全sheet.append方法(openpyxl)
【HCIP】MPLS实验









