Open yankewei opened 2 years ago
题目看似是一个困难题,但分析之后会发现很简单 对 key 的值分情况讨论
当 key>1 时,其实我们可以通过移动有限的次数找到一个升序的字符串,所以针对这种情况我们只需对字符串排序即可。
class Solution {
/**
* @param String $s
* @param Integer $k
* @return String
*/
function orderlyQueue($s, $k) {
if ($k > 1) {
$arr = str_split($s, 1); // 不能使用 explode 函数,因为 explode 的第一个参数不能时空
sort($arr);
return implode('', $arr);
}
$result = $s;
for ($i = 0; $i < strlen($s); $i++) {
$s = substr($s, 1) . $s[0];
if (strcasecmp($s, $result) < 0) {
$result = $s;
}
}
return $result;
}
}
给定一个字符串 s 和一个整数 k 。你可以从 s 的前 k 个字母中选择一个,并把它加到字符串的末尾。
返回 在应用上述步骤的任意数量的移动后,字典上最小的字符串 。
示例 1:
示例 2:
提示:
来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/orderly-queue 著作权归领扣网络所有。商业转载请联系官方授权,非商业转载请注明出处。