Как вы можете проверить поп-последовательность, не получив последовательность pu sh? - PullRequest
0 голосов
/ 13 января 2020

Предположим, что числа от 0 до N последовательно помещаются в стек. В любой момент числа могут быть вытолкнуты из стопки, и каждый раз, когда число выталкивается, оно выводится на экран. Ваша задача - получить последовательность чисел и проверить, может ли эта последовательность быть результатом этой процедуры. Вот несколько примеров:

Пример 1:

Input: 0 1 2 3
Output: True

Explanation:  
push 0  
pop => print 0  
push 1  
pop => print 1  
push 2  
pop => print 2  
push 3  
pop => print 3  

Пример 2:

Input: 0 3 1 2
Output: False    

Explanation:
push 0  
pop => print 0  
push 1  
push 2  
push 3  
pop => print 3

The next number in the sequence is 1, which can't have been popped because
2 is still on the stack, so this sequence is invalid. 

Как вы могли бы написать код для решения этой проблемы? У вас нет доступа ни к самому стеку, ни к последовательности pu sh. Вы только знаете, что числа помещаются в стек в порядке возрастания от 0 до N, но их можно вытолкнуть в любое время. Я чувствую, что ответ прямо на кончике моего языка, но я полностью озадачен. Я изо всех сил пытаюсь придумать правило, которому должны следовать входные данные, чтобы считаться действительными.

...