背景:1Y
思路:类似于选择排序的思想,用一个ans来记录最小值,搜索所有可能值中的最小值。
学习:
1.strcmp(a,b)的返回值是a相对于b的字典序,大则返回1,小则返回-1,等则返回0.
2.一个线性的链要成环的话,就%n。
#include<stdio.h>
#include<string.h>
int main(void){
int t;
char DNA[105],ans[105];
scanf("%d",&t);
while(t--){
scanf("%s",DNA);
int length=strlen(DNA);
memset(ans,'Z',sizeof(ans));
for(int i=0;i<length;i++){
for(int j=0,k=i,kk=i;j<length;j++,k=(++k)%length){
if(DNA[k]<ans[j]){
for(int l=kk,ll=0;ll<length;ll++,l=(++l)%length){
ans[ll]=DNA[l];
}
break;
}else if(DNA[k]>ans[j]) break;
}
}
for(int i=0;i<length;i++){
printf("%c",ans[i]);
}
printf("\n");
}
return 0;
}