如何检查数组中元素的顺序?
就像我有两个数组一样,程序必须检查第一个中的所有元素是否与第二个元素的顺序相同,但如果跳过中间的某些元素则没问题
像,
String[] expected = { "a", "b", "c", "d", "e", "f", "g" };
String[] actual = { "a", "b", "d", "e" };
上面的一个很好。
但是下面这个必须失败:
String[] actual = { "a", "b", "c", "e", "d" };
我试过以下看起来很好但是有一种方式:
boolean matching = false;
int e = 0;
int a = 0;
// 0 1 2 3 4 5 6
String[] expected = { "a", "b", "c", "d", "e", "f", "g" };
String[] actual = { "a", "b", "d" ,"g","c"};
while (a < 5) {
if (actual[a].equals(expected[e])) {
matching = true;
if(e<6){
a++;
e++;
}
else{
matching = false;
break;
}
} else {
if (e < 6)
e++;
else
break;
matching = false;
}
}
if (matching)
System.out.println("seems alright");
else
System.out.println("No");
答案 0 :(得分:0)
一旦可能的解决方案。
int j = 0;
for (int i = 0; i < expected.length; i++) {
if (j < actual.length && actual[j].equals(expected[i])) {
j++;
}
}
if (j < actual.length) {
//Does not match
}