病毒变种 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];//字符数不超过500
    for(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);
	}
 }
 }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值