病毒变种
病毒DNA可以表示成由一些字母组成的字符串序列,且病毒的DNA序列是环状的。例如,假设病毒的DNA序列为baa,则该病毒的DNA序列有三种变种:baa,aab,aba。试编写一程序,对给定的病毒DNA序列,输出该病毒所有可能的DNA序列(假设变种不会重复)。
输入格式:
输入第一行中给出1个整数i(1≤i≤11),表示待检测的病毒DNA。 输入i行串序列,每行一个字符串,代表病毒的DNA序列,病毒的DNA序列长度不超过500。
输出格式:
依次逐行输出每个病毒DNA所有变种,各变种之间用空格分隔。
输入样例1:
1
baa
结尾无空行
输出样例1:
baa aab aba
结尾无空行
输入样例2:
2
abc
baac
结尾无空行
输出样例2:
abc bca cab
baac aacb acba cbaa
结尾无空行
代码段示例如下:
#include <stdio.h>
#include <string.h>
void DNApaixu(char *str);
int main()
{
int N,i;
char a[500];
scanf("%d",&N);
for(i=0;i<N;i++)
{
scanf("%s",a);
DNApaixu(a);
printf("\n");
}
return 0;
}
void DNApaixu(char *str)
{
int n,i,j;
n=strlen(str);
printf("%s ",str);
for(i=1;i<n;i++)
{
str[n]=str[0];
for(j=1;j<=n;j++)
{
str[j-1]=str[j];
}
str[j-1]='\0';
printf("%s ",str);
}
}