Принимает уже массив тегов. Например такой
<tag1><tagX></tag1>
После запуска программа напечатает только
</tag1>
Так как мы сравниваем теги, получается на вершине стека уже не правильный тег <tagX> . И сравнение уже будет не верным, так как он сам по себе не верный, и не имеет закрывающего.
Если бы </tagX> стал закрытым, то все отработало бы правильно, программа просто бы его пропустила и проверяла дальше.