Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # Реализовать класс стек pop, add, size (геттер), delete по индексу (
- # перегрузка встроенной хуйни), перегрузить + (соединияет два стека),
- # ну и получение элемента по индексу (встроенное) внутренее должно быть
- # private (насколько возможно)
- from typing import List, Any, Optional
- class Stack:
- def __init__(self, lst: Optional[List[Any]] = None):
- self._body = [] if lst is None else lst
- def push(self, x: Any) -> None:
- self._body.append(x)
- @property
- def size(self) -> int:
- return len(self._body)
- def pop(self) -> None:
- if self.size:
- self._body.pop()
- def __delitem__(self, key: int):
- if self.size > key:
- self._body.pop(key)
- def __add__(self, other: 'Stack') -> 'Stack':
- return Stack(self._body + other._body)
- def __str__(self) -> str:
- return '{}'.format(self._body)
- def __getitem__(self, item: int) -> Any:
- return self._body[item] if self.size > item else None
- def main():
- s1 = Stack()
- s1.push(1)
- s1.push(2)
- print(s1._body)
- s2 = Stack()
- print(s2._body)
- s2.push(3)
- print(s2._body)
- print(s1[1])
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement