admin 管理员组

文章数量: 887006

病毒变种 PTA(JAVA)

zis病毒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

思路:如abc

将a的首字母放到末尾变成bca,这是一种可能的序列再把b放到末尾变成cab这也是种可能,再加上原本的序列一共三种,思路就是这样,不管序列是abcd还abbc都是这样的思路把首字母放到末尾输出。 

 import java.util.*;  public class Main{          public static void main(String[] args) {Scanner sc=new Scanner(System.in);int n=sc.nextInt();String s2=sc.nextLine();//吞换行符号char a[]=new char[509];//字符数不超过500for(int i=0;i<n;i++){  String s=sc.nextLine();int len=s.length();//字符长度stoarrays(s,a,len);//字符装入数组System.out.print(s+" ");//输出原字符prints(a,len);//输出函数System.out.println();}   }public static void prints(char a[],int len ){   //abc->bca->cab//以上是所有可能,输出想表示就是这个意思int j=1;for(int i=1;i<len;i++) 	{a[len]=a[0];//第一个字符放到最后for( j=1;j<=len;j++){a[j-1]=a[j];//依次将字符往前移动}a[j-1]=' ';//最后一个变成空格String s=new String(a).trim();//将a变成串,并除去末尾空格System.out.print(s+" ");}}public static void stoarrays(String s,char a[],int len){for(int i=0;i<len;i++){a[i]=s.charAt(i);}}}

本文标签: 病毒变种 PTA(JAVA)