899. Orderly Queue
题目文本会按所选界面语言从俄语翻译;代码保持不变。
Вам дана 字符串 s и 整数 k. Вы можете выбрать одну из первых k букв s и добавить ее в конец строки. return лексико图ически наименьшую строку, которая может получиться после Applications указанного шага за любое количество ходов.
示例:
Input: s = "cba", k = 1
Output: "acb"
C# 解法
匹配/原始using System;
using System.Linq;
public class Solution {
public string OrderlyQueue(string s, int k) {
if (k == 1) {
string minString = s;
for (int i = 1; i < s.Length; i++) {
string rotated = s.Substring(i) + s.Substring(0, i);
if (rotated.CompareTo(minString) < 0) {
minString = rotated;
}
}
return minString;
} else {
return new string(s.OrderBy(c => c).ToArray());
}
}
}
C++ 解法
自动草稿,提交前请检查#include <bits/stdc++.h>
using namespace std;
// Auto-generated C++ draft from the C# solution. Review containers, LINQ and helper types before submit.
class Solution {
public:
public string OrderlyQueue(string s, int k) {
if (k == 1) {
string minString = s;
for (int i = 1; i < s.size(); i++) {
string rotated = s.Substring(i) + s.Substring(0, i);
if (rotated.CompareTo(minString) < 0) {
minString = rotated;
}
}
return minString;
} else {
return new string(s.OrderBy(c => c).ToArray());
}
}
}
Java 解法
自动草稿,提交前请检查import java.util.*;
import java.math.*;
// Auto-generated Java draft from the C# solution. Review API differences before LeetCode submit.
public class Solution {
public String OrderlyQueue(String s, int k) {
if (k == 1) {
String minString = s;
for (int i = 1; i < s.length; i++) {
String rotated = s.Substring(i) + s.Substring(0, i);
if (rotated.CompareTo(minString) < 0) {
minString = rotated;
}
}
return minString;
} else {
return new String(s.OrderBy(c => c).ToArray());
}
}
}
Go 解法
匹配/原始package main
import (
"sort"
"strings"
)
func orderlyQueue(s string, k int) string {
if k == 1 {
minString := s
for i := 1; i < len(s); i++ {
rotated := s[i:] + s[:i]
if rotated < minString {
minString = rotated
}
}
return minString
} else {
sArr := strings.Split(s, "")
sort.Strings(sArr)
return strings.Join(sArr, "")
}
}
Algorithm
Если k равно 1, find лексико图ически наименьшую строку путем вращения строки и поиска минимального варианта.
Если k больше 1, отсортировать строку, так как любое количество перемещений позволит упорядочить все символы в строке.
Вернуть результат.
😎
Vacancies for this task
活跃职位 with overlapping task tags are 已显示.
目前还没有活跃职位。