HTML Diff
1 added 1 removed
Original 2026-01-01
Modified 2026-02-26
1 <p>PHP поставляется с библиотекой, называемой<a>SPL</a>(Standard PHP Library). Кроме прочего, она содержит<a>набор классов</a>, реализующих популярные структуры данных, такие как стек или очередь.</p>
1 <p>PHP поставляется с библиотекой, называемой<a>SPL</a>(Standard PHP Library). Кроме прочего, она содержит<a>набор классов</a>, реализующих популярные структуры данных, такие как стек или очередь.</p>
2 <p>Несмотря на то, что SPL встроен в язык, конкретно к структурам данных есть множество претензий со стороны сообщества, как по производительности, так и по интерфейсам классов. Всё это вылилось в создание расширения php-ds (DS). Подробнее о нем читайте в<a>статье</a>. Библиотеку php-ds можно установить как обычный пакет<a>https://github.com/php-ds/polyfill</a>. Вся документация доступна здесь:<a>https://php.net/manual/ru/book.ds.php</a>.</p>
2 <p>Несмотря на то, что SPL встроен в язык, конкретно к структурам данных есть множество претензий со стороны сообщества, как по производительности, так и по интерфейсам классов. Всё это вылилось в создание расширения php-ds (DS). Подробнее о нем читайте в<a>статье</a>. Библиотеку php-ds можно установить как обычный пакет<a>https://github.com/php-ds/polyfill</a>. Вся документация доступна здесь:<a>https://php.net/manual/ru/book.ds.php</a>.</p>
3 <p>DS включает в себя Vector, Deque, Map, Set, Stack, Queue, PriorityQueue, Pair. Эти структуры в жизни обычного веб-разработчика нужны не каждый день, но всё же такое случается. Если вы с ними не знакомы, то имеет смысл хотя бы прочитать о них в википедии.</p>
3 <p>DS включает в себя Vector, Deque, Map, Set, Stack, Queue, PriorityQueue, Pair. Эти структуры в жизни обычного веб-разработчика нужны не каждый день, но всё же такое случается. Если вы с ними не знакомы, то имеет смысл хотя бы прочитать о них в википедии.</p>
4 <h2>Stack</h2>
4 <h2>Stack</h2>
5 - <p>Стек - это коллекция типа "Последний вошёл, первый вышел" (Last In, First Out или LIFO), которая позволяет работать только с самым верхним (последним) значением. Итерция происходит от конца к началу с удалением взятого элемента.</p>
5 + <p>Стек - это коллекция типа "Последний вошёл, первый вышел" (Last In, First Out или LIFO), которая позволяет работать только с самым верхним (последним) значением. Итерация происходит от конца к началу с удалением взятого элемента.</p>
6 <p>Методы pop() и push() составляют основной интерфейс класса. push() добавляет элемент (или элементы) на стек, pop() - снимает со стека.</p>
6 <p>Методы pop() и push() составляют основной интерфейс класса. push() добавляет элемент (или элементы) на стек, pop() - снимает со стека.</p>
7 <p>Перепишем с использованием этого стека функцию, которая разбиралась в курсе "PHP: массивы". Напомню задачу:</p>
7 <p>Перепишем с использованием этого стека функцию, которая разбиралась в курсе "PHP: массивы". Напомню задачу:</p>
8 <p>Необходимо реализовать функцию, которая проверяет, что парные символы сбалансированы. То есть каждый открывающий символ имеет закрывающий, и они не перекрываются, например, так: [{]}. К таким символам в нашем случае относятся &lt;&gt;, {}, (), []. Входом в функцию может быть ()&lt;&gt;{}. Такой пример проходит проверку, а вот этот уже нет: [({)}]. Здесь происходит перекрытие фигурных и круглых скобок.</p>
8 <p>Необходимо реализовать функцию, которая проверяет, что парные символы сбалансированы. То есть каждый открывающий символ имеет закрывающий, и они не перекрываются, например, так: [{]}. К таким символам в нашем случае относятся &lt;&gt;, {}, (), []. Входом в функцию может быть ()&lt;&gt;{}. Такой пример проходит проверку, а вот этот уже нет: [({)}]. Здесь происходит перекрытие фигурных и круглых скобок.</p>
9 <p>Объектный стиль никак не повлиял на алгоритм решения. Кода не стало меньше, он не стал проще. С другой стороны, такой подход в PHP распространен крайне широко.</p>
9 <p>Объектный стиль никак не повлиял на алгоритм решения. Кода не стало меньше, он не стал проще. С другой стороны, такой подход в PHP распространен крайне широко.</p>