代码:
#include<stdio.h>
#include<string.h>
#define maxn 105
//比较字典序
int cmp(char* s,int p,int q) { //返回以p开头表示的环状序列是否比以q开头表示的的字典序小
int n = strlen(s);
for(int i=0;i<n;i++) {
if(s[(p+i)%n] != s[(q+i)%n]) return s[(p+i)%n] < s[(q+i)%n]; //循环问题: 模除于数组长度!
}
return 0;
}
int main(void) {
char s[maxn];
scanf("%s",s);
int min = 0;
int len = strlen(s);
for(int i=1;i<len;i++) {
if(cmp(s,i,min)) min = i;
}
for(int i=0;i<len;i++) {
printf("%c",s[(min+i)%strlen(s)]);
}
}