UVa 1584 求余实现环状串

来源:互联网 发布:gif 软件 编辑:程序博客网 时间:2024/06/06 21:02
#include<stdio.h>#include<string.h>char s[100];int Less(int a,int b){int len=strlen(s);    for(int i=0;i<len;i++){    if(s[(a+i)%len]!=s[(b+i)%len])return s[(a+i)%len]<s[(b+i)%len]?a:b;}return 0;}int main(){int T;scanf("%d",&T);    while(T--){int i,ans=0;scanf("%s",s);int len=strlen(s);        for(i=0;i<len;i++)            ans=Less(i,ans);for(i=0;i<len;i++)putchar(s[(ans+i)%len]);putchar('\n');}    return 0;}/*定义一个ans从环状串的下标0开始从环状串的下标i=0开始遍历,每次i++判断从i开始的字符串和从ans的下标开始得到的字符串谁更小判断细节不再描述,注意下s[(a+i)%len]*/