我有以下阵列要检查数组元素是连续
@array = qw(1 2 3 3A 3B 4 6)
,我会喜欢,以检查是否在我的数组中的元素是连续
我有一种被连续不同的场景。
案例1: 1,2,3,4被认为是连续的;
例2: 14A,14B,14C,14D应该被认为是连续的;
案例3: 1,2,3,3A,3B,4,5也应该被认为是连续的。
我的窗口检查连续性是两个,每当有间断时,我希望在其位置返回一个星号(*),即考虑@array它应该返回*在4和6之间,因为5是缺少的,因此返回1 2 3 3A 3B 4 * 6
虽然下面的代码的工作,当我的阵列元件类似于壳体1但由于@array具有元素作为在壳体3我的条件不工作和我寻求一种有效的方法来解决这个问题,即涵盖所有三种情况下。
for ($i=0;$i<=$#array;$i+=2)
{
if($array[$i+1] == $array[$i]+1)
{
print $array[$i],$array[$i+1];
}
else
{
print $array[$i],"*";
}
}
需要考虑的事项:
- 数组元素将始终是数字(例如1,2,3),并用字母级联数字(例如2A)。
- 需要多个星号表示多个缺失元素,即星号的数量应该与缺失元素的数量相匹配。
做的字母必须以被认为持续?例如。 3A,3C,3B不会?你的'东西'总是数字+字母吗? – Sobrique
'3B'->'4B'会被视为'连续'吗? – Sobrique
而且 - 如果比一个差距更大,你是否需要投入多个星星? – Sobrique