字符串最小表示的裸题
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
/**
* @program: 算法题
* @author: 上杉
* @create: 2021-05-19 22:37
**/
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new InputStreamReader(System.in));
String str1 = bf.readLine();
String str2 = bf.readLine();
String min1 = getMin(str1);
String min2 = getMin(str2);
if (min1.equals(min2)){
System.out.println("Yes");
System.out.println(min1);
}else {
System.out.println("No");
}
}
private static String getMin(String str) {
int len = str.length();
String d = str + str;
int i = 0;
int j = 1;
while (j < len){
int k = 0;
while (d.charAt(i + k) == d.charAt(j + k)) k++;
if (d.charAt(i+k) < d.charAt(j+k)){
j = j + k + 1;
}else {
i = j;
j = i + 1;
}
}
return d.substring(i,i+len);
}
}