这题能模拟过
import java.util.Scanner;
public class Main
{
public static int step = 1;
public static void main(String args[])
{
Scanner sc = new Scanner(System.in);
while (sc.hasNext())
{
int x = sc.nextInt();
for (int i = 1; i <= x; i++)
{
step=1;
int a = sc.nextInt();
String b, c, d;
b = sc.next();
c = sc.next();
d = sc.next();
StringBuilder ee = new StringBuilder();
for (int j = 0; j < a; j++)
{
ee.append(c.charAt(j));
ee.append(b.charAt(j));
}
String h = ee.toString();
dfs(h, d);
if (step > 1500)
{
System.out.println(i + " " + (-1));
} else
{
System.out.println(i + " " + step);
}
}
}
}
public static void dfs(String arr,String change)
{
if (arr.equals(change)==true)
{
return ;
}
if (step>2000)
{
return ;
}
String y=arr.substring(0,change.length()/2);
String x=arr.substring(change.length()/2,change.length());
StringBuilder xx=new StringBuilder();
for (int i = 0; i < change.length()/2; i++)
{
xx.append(x.charAt(i));xx.append(y.charAt(i));
}
step++;
dfs(xx.toString(), change);
}
}