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


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.遍历二维数组,找到最小的字符串,输出。

智能推荐

注意!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系我们删除。



 
© 2014-2019 ITdaan.com 粤ICP备14056181号  

赞助商广告