您的位置:首页 > 其它

算法竞赛入门经典(第二版)-刘汝佳-第三章 数组与字符串 环状序列

2016-07-27 13:08 435 查看
http://acm.hust.edu.cn/vjudge/contest/123670#problem/F  密码5201



#include<stdio.h>
#include<string.h>
int main()
{
//freopen("C:\\Users\\5201\\Desktop\\1.txt","r",stdin);
int n;
scanf("%d",&n);getchar();
while(n--)
{
int ch;
char s[105];
int i=0,mi=65535;
while( ch=getchar() )
{
if(ch==EOF||ch=='\n') break;
s[i]=ch;
mi=mi<ch?mi:ch;
i++;
}
s[i]=0;
int len=strlen(s);
char a[101][101];
int count=0;
for(i=0;i<len;i++)
{
if(s[i]==mi)
{
int j;
for(j=0;j<len;j++)
{
a[count][j]=s[(i+j)%len];
}
a[count][len]=0;
count++;
}
}
mi=0;
for(i=1;i<count;i++)
{
if( strcmp(a[mi],a[i])>0 ) mi=i;
}
puts(a[mi]);
}
}


思路

1.找到最小的字母,以那个字母为第0个字母,存入二维数组中。

2.遍历二维数组,找到最小的字符串,输出。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: