Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Pitfalls of palindrome check
- Каждая учебная задача таит пару-тройку грабель; вот они.
- Задача
- Дана строка s. Определить, читается ли она одинаково слева направо и справа налево, без учёта регистра и пробелов.
- Решение
- ``python
- def is_palindrome(s: str) -> bool:
- cleaned = ''.join(ch.lower() for ch in s if ch.isalnum())
- return cleaned == cleaned[::-1]
- print(is_palindrome("А роза упала на лапу Азора")) # True
- print(is_palindrome("python")) # False
- `
- Как это работает
- Сначала строка очищается от пробелов и знаков препинания методом isalnum(), затем сравнивается с перевёрнутой копией [::-1].
- Пример работы
- `text
- True
- False
- ``
- Сложность
- O(n) по времени и O(n) по памяти.
- Частые ошибки
- 1. Не обрабатывать крайние случаи. Пустой ввод, ноль, отрицательные числа — именно там решение чаще всего ломается.
- 2. Смешивать типы данных. Строки и числа ведут себя по-разному; неявное приведение типов — источник неочевидных багов.
- 3. Писать код без проверки на маленьких примерах. Прогоните решение вручную на 2-3 значениях, прежде чем считать задачу решённой.
- Заметив такую ошибку в чужом коде, вы уже мыслите как ревьюер.
- View Full Gallery → https://go.cbrop.com/prse
- Related:
- https://radicle.network/nodes/seed.cielago.xyz/rad%3Az4GuiYjjhGdLcKNbJn5Y8HcmpoaYL/issues/84d91837af3c8e86cd203250950619b1f74af762
- https://ecency.com/@tomasruzick4961/r34-skibidi-toilet-58fb65
- https://secure.linkcentre.com/status/1741665/?from=submit
- https://pastebin.com/87PCNeDt
- https://yakihonne.com/article/naddr1qvzqqqr4gupzp6c0e40px905cpqpnynhelzqgte650he77zwmaauwg6km2ly65v0qy28wumn8ghj7un9d3shjtnyv9kh2uewd9hszynhwden5te0danxvcmgv95kutnsw43qz9nhwden5te0wfjkccte9ec8y6tdv9kzumn9wsqzcempd3kx2une94jrqerr8pskzvedv9jkxvedxscr2d3dv9jrqefd8yunxc34v5uk2dmzxcusfrwqpr
Advertisement
Add Comment
Please, Sign In to add comment