- 1
- 2
- 3
- 4
- 5
- 6
Итак, у вас есть два стека с ограничением на размер - N. Стеки поддерживают операции push, pop, top.
pop пустого стека, как и push заполненного стека вызывает соответствующее исключение.
Необходимо из этих двух стеков смоделировать стек с таким же размером, но с дополнительным свойством -\
push заполненного стека вызывает затирание последнего элемента стека, push(41,[1,2,3]) -> [41,1,2] ,\
где N=3.
Время пошло. Язык программирования любой.
Да, это не говнокод, но 90% кандидатов не могут ее решить. (Наверное, потому, что язык собеседования - 1С)
гугл в помощь. за 24 часа успеешь. (:
>а может и раньше
если не успеешь нагуглить раньше, то мы заминусуем (:
>если не увижу правильных мыслей
телепат в треде! живой и не в отпуске! (:
Гм, что-то мне ursus вспомнился...
а решение - с помощью второго буфера "копируем" pop-pop-pop,push-push-push элементы туда-обратно, имитируя операцию shift, затем последний push.
Автор хочет, чтобы мы это решили за O(1).
Я вот не могу, например. Только это, скорее, не я не прошёл собеседование, а тот, кто задал задачу не прошёл собеседование у меня, потому что за O(1) тут нихуя не решается одними только pop и push.
Хранить внутри два стека. Второй отличается от первого отсутствием элемента на дне. Когда первый переполняется, возвращать ссылку на второй.
Автор, ответь.
Под последним элементом стека подразумевается последний засунутый в стек элемент? Это легко за О(1) (:
алексуй, ответь. (:
http://caricatura.ru/parad/lock/pic/4027.jpg
а может с вершины?
Предыдущих шагов не показывали и конкретно сторону со дном не указывали. пока это лишь ваши домыслы. (:
Теперь понял. Я в отношении программирования думаю чисто по-английски, русский сразу в ступор вводит, особенно когда просят из "2 стеков сделать 1"
Не, автор темы по русски тоже не разговаривает. Ваш когнитивный диссонанс нам понятен.
len(stack3) = len(stack1) + len(stack2)
Алехой, теперь выложите: Программа Хеллоу Ворлд! На ассемблере. Жду решений. Если за сутки не увижу правильных мыслей - дам ответ.
1) S0[1,2,3], S1[];
2) S0[3], S1[2,1];
3) S0[], S1[2,1] ;
4) S0[1,2], S1[];
5) S0[4,1,2], S1[];
Не вопрос. Легко:
ps: я не извращенец.
ппс: знаю, что на дворе уже 20тый век.
Интернет?
Не. Не слышал.
iTelepathist?
ORLY?
В 21м веке компы на рассоянии 15 километров соединяют через Инетнет обычно, а то и через оптику тонкую и желтую.