我有以下陣列要檢查數組元素是連續
@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