字典序最小

#include<bits/stdc++.h>
using namespace std;
#define maxn 110
int solve(const char* s,int p,int 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(){
	int t;
	char s[maxn];
	//freopen("input.txt","r",stdin);
	cin>>t;
	while(t--){
		cin>>s;
		int ans=0;
		int n=strlen(s);
		for(int i=1;i<n;i++)
		if(solve(s,i,ans)) ans=i;
		for(int i=0;i<n;i++)
		putchar(s[(i+ans)%n]);
		cout<<endl;
	}
	return 0;
}
posted @ 2018-07-30 17:26  ChunhaoMo  阅读(552)  评论(0编辑  收藏  举报