0
我有数组,我想要使用两个相邻元素执行修改元素内容的操作。我不认为map
运营商是适合的。例如:操作替换两个相邻的元素,平均他们如果abs(element1-element2) <= 2
执行涉及数组中相邻元素的操作的最简单方法
my @arr = (0, 3, 5, 6, 9, 1, 1);
my @outarr = magic(@arr);
for(@outarr)
{
print "$_ ";
}
而且我想输出是:0 5 9 1
有没有办法与map
或grep
运营商的风采做到这一点?
不,我认为Perl有这样一个任务的许多方面,我想知道聪明的一个。 – DoctorMoisha 2014-11-02 09:46:59
我不明白你描述的算法是如何产生'0,5,9,1'的。有三对由两个或两个以下的不同组成:'(3,5)'(应该用'4'替代),'(5,6)'(应该用'5.5'替换,并且'1 ,1'(应该用'1'代替),我认为这会留下'0,4,5.5 9,1',你如何解释你给出的结果? – Borodin 2014-11-02 10:25:53
(0,3) - >(0, 3),(3,5)→(4),(4,6)→(5),(5,9)→(5,9),(9,1)→(9,1) ,(1,1) - > 1 – DoctorMoisha 2014-11-02 10:45:29