Еще один вопрос интервью в Javascript: удаление элементов из середины массива с помощью просто .pu sh .pop - PullRequest
0 голосов
/ 01 мая 2020

Я получил этот вопрос во время экзамена по оценке, но в итоге я его не сдал, но я вроде как получил второй шанс. Это был один из вопросов, и я просто не могу понять, как его решить. разрешено использовать только следующие операторы: .length () .pu sh (x) .pop ()

===! ==

<>

<=> =

&& ||

И задача такова: написать функцию, которая обрезает несколько последовательностей нуля до одного нуля di git. Возвращаемое значение - обновленный массив. Вам не разрешено использовать другой массив, и вам нужно реализовать его за один проход по массиву (обычно реализуется только одним l oop). Другими словами, каждый элемент в массиве должен изменить свой индекс только один раз в течение программы.

var w = [1,2,0,0,0,0,5,7,-6,0,8,0,0]; 
var n = zeroTrim(w); 
console.log(n);  //print [1,2,0,5,7,-6,0,8,0] 

Буду очень признателен за любую помощь в ее решении. Особенно в понимании того, как вы можете обрезать элементы из середины массива, используя только .pop и .pu sh?

1 Ответ

0 голосов
/ 01 мая 2020

Pop элемент, если two zero's are adjacent еще приращение i

# Python3 , Should be able to follow the procedure
w = [1,2,0,0,0,0,5,7,-6,0,8,0,0,0,5]
i=0
while i<len(w)-1:
    # if there are two adjacent element equal to zero, pop it
    if w[i]==w[i+1]==0:
        w.pop(i)
    else:
        i+=1
print(w) # output: [1, 2, 0, 5, 7, -6, 0, 8, 0, 5]
...