0
Удаление промежутков дубликатов цифр ( completed)
Есть список, скажем, a=[1,2,3,4,5,5,5,6,7,8,9,1,1]. Нужно удалить из него промежутки задвоенных цифр. То есть, в ответе должно получиться [1, 2,3, 4,5,6,7,8,9,1]. Я так и не смог придумать, как это организовать, да попроще. Помогите, пожалуйста. Мой вариант не работает в основном из-за того, что я не нашёл ничего лучше, кроме как перебирать все элементы списка а и для каждого из них запускать while, который искал все одинаковые числа до тех пор, пока не натыкался на какое-то другое. При таком раскладе остаются 2 одинаковых элемента и в конце вылезает ошибка о том, что я обращаюсь к не существующему элементу списка. Надеюсь на вас. https://code.sololearn.com/c3qICRKzP639/?ref=app
3 odpowiedzi
+ 1
Это потому, что вы удаляете числа из копии и снова проверяете числа из оригинала, которые уже удалены .. Эти 2 цикла вызывают вас в заблуждение .. Вы можете использовать только 1 цикл .. Вы не можете пропустить номера циклов, которые уже удалены, поэтому ваш оператор break разрывает внутренний цикл, но вам нужно разорвать внешний цикл также с этим подходом .. Но попробуйте это а count + 1 <n и number == a [count + counter]:
That's because your removing numbers from copy and again checking numbers from original which are already removed.. That 2 loops cause you misleading there.. You can only use 1 loop..
You can't skip for loop numbers which are already removed so your break statement break inner loop but you need to break outer loop also with that approach.. But try this
while count+1 < n and number== a[count +counter] :
0
Jayakrishna🇮🇳 mb it's works, but am getting "list index out of range" cause use a[count+counter]. If we can change it for result be equal I want to know what am need to do
0
Jayakrishna🇮🇳 am corrected code and it now works normal. Ty for idea