这题是一道理解题,看题第一眼,一脸懵逼,看看官方的答案,原来如此简单。
这题只会有两种情况,一个是1,一个是大于1.
如果是1的话,直接遍历这个字符串,然后每次把首字母放到末尾,然后判断大小。
如果不是1的话,直接排序就行,应该在非1的情况下,经过全部胖子徐之后,肯定会变成一个有序的字符串。可以推导一下,就能理解。
import java.util.Arrays;
/**
* @author xnl
* @Description:
* @date: 2022/8/3 22:58
*/
public class Solution {
public static void main(String[] args) {
Solution solution = new Solution();
System.out.println(solution.orderlyQueue("cba", 1));
}
public String orderlyQueue(String s, int k) {
if (k == 1){
String smallest = s;
StringBuilder sb = new StringBuilder(s);
int n = s.length();
for (int i = 0; i < n; i++){
char c = sb.charAt(0);
sb.deleteCharAt(0);
sb.append(c);
// 比较字符串是不是最小字符串
if (sb.toString().compareTo(smallest) < 0){
smallest = sb.toString();
}
}
return smallest;
}
char[] c = s.toCharArray();
Arrays.sort(c);
return new String(c);
}
}