An open API service indexing awesome lists of open source software.

https://github.com/stormozov/py-stack-project


https://github.com/stormozov/py-stack-project

Last synced: 6 months ago
JSON representation

Awesome Lists containing this project

README

          

Реализация класса Stack

**Py-Stack** — это пример реализации стека на языке программирования
Python.

## Установка
Для установки проекта выполните следующие шаги:

- Клонируйте репозиторий с помощью команды:

Для HTTPS:
```
git clone https://github.com/stormozov/py-stack-project.git
```

Для SSH:
```
git clone git@github.com:stormozov/py-stack-project.git
```

- Перейдите в папку с проектом с помощью команды `cd py-stack-project`

## Использование
Стек реализован в модуле `main.py`. Вы можете использовать его, импортировав
класс Stack и создавая экземпляр стека.

Пример использования:

```python
from stack import Stack # Импортирует модуль Stack

my_stack = Stack() # Создает экземпляр стека
my_stack.push(1) # Вставляет цифру 1 в стек
my_stack.push(2) # Вставляет цифру 2 в стек
print(my_stack.pop()) # Выведет 2
print(my_stack.pop()) # Выведет 1
```

## Проверка сбалансированности скобок
Класс `Stack` предоставляет метод `is_balanced_brackets` для проверки сбалансированности скобок в заданной строке. Этот метод принимает строку скобок в качестве входных данных и возвращает строку, указывающую, сбалансированы ли скобки или нет.

### Принцип работы
Метод `is_balanced_brackets` использует словарь для сопоставления закрывающих скобок с соответствующими открывающими скобками. Затем он итерируется по входной строке, помещая открывающие скобки в стек и извлекая их, когда встречает соответствующую закрывающую скобку. Если он встречает закрывающую скобку, не соответствующую вершине стека, или если в стеке остались скобки в конце строки, он возвращает сообщение, указывающее, что скобки не сбалансированы.

### Пример использования
Вы можете использовать метод `is_balanced_brackets` следующим образом:
```python
from stack import Stack # Импортирует модуль Stack

stack = Stack()
print(stack.is_balanced_brackets("(((([{}]))))")) # Вывод: Сбалансированно
print(stack.is_balanced_brackets("}{}")) # Вывод: Несбалансированно
```

## Тесты
Тесты для стека находятся в файле `test_stack.py` и `test_brackets.py`
директории `tests`.

Вы можете запустить их с помощью команды:
```
python -m unittest test_stack
```
Или вы можете запустить их в IDE, например PyCharm.

## Автор
Автор проекта - stormozov