62,614
社区成员
发帖
与我相关
我的任务
分享
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class test12 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String s1[], s2[], s3[], length[];
List<Array> list = new ArrayList<Array>();
Scanner sc = new Scanner(System.in);
do {
System.out.println("请输入2个数组的长度用空格分开:");
length = sc.nextLine().split(" ");
// 数组长度为0时 结束输入
if (Integer.parseInt(length[0]) == 0 || Integer.parseInt(length[1]) == 0) {
break;
}
do {
System.out.println("请输入第一个数组数字用空格分开:");
s1 = sc.nextLine().split(" ");
} while (s1.length != Integer.parseInt(length[0]));
do {
System.out.println("请输入第二个数组数字用空格分开:");
s2 = sc.nextLine().split(" ");
} while (s2.length != Integer.parseInt(length[1]));
System.out.println("请输入组合数组数字用空格分开:");
s3 = sc.nextLine().split(" ");
Array arr = new Array(s1, s2, s3);
list.add(arr);
} while (true);
for (Array i : list) {
if (i.s3.length != (i.s1.length + i.s2.length)) {
break;
} else {
i.combain(0, 0, 0);
}
if (i.isFlag()) {
System.out.println("Possible");
} else {
System.out.println("Not possible");
}
}
}
}
// 建立一个3个字符串数组加一个布尔判断符的类
class Array {
String[] s1, s2, s3;
boolean flag = false;
public boolean isFlag() {
return flag;
}
public void setFlag(boolean flag) {
this.flag = flag;
}
public String[] getS1() {
return s1;
}
public void setS1(String[] s1) {
this.s1 = s1;
}
public String[] getS2() {
return s2;
}
public void setS2(String[] s2) {
this.s2 = s2;
}
public String[] getS3() {
return s3;
}
public void setS3(String[] s3) {
this.s3 = s3;
}
public Array(String[] s1, String[] s2, String[] s3) {
super();
this.s1 = s1;
this.s2 = s2;
this.s3 = s3;
}
// s1和s2 能否合并为s3 的判断方法
public void combain(int a, int b, int c) {
if (a < s1.length) {
if (s3[c].equals(s1[a]) && c <= s3.length) {
if (s1.length == a + 1 && s2.length == b && s3.length == c + 1) {
setFlag(true);
} else {
combain(a + 1, b, c + 1);
}
}
}
if (b < s2.length) {
if (s3[c].equals(s1[b]) && c < s3.length) {
if (s1.length == a && s2.length == b + 1 && s3.length == c + 1) {
setFlag(true);
} else {
combain(a, b + 1, c + 1);
}
}
}
}
}