🕵️♂️ Дебаг без боли: секрет f-строк
Признавайтесь, вы тоже часто пишете такие принты, чтобы проверить значение переменной?
Это работает, но писать каждый раз название переменной в кавычках — долго и лениво. В Python есть супер-фишка для f-строк, о которой многие забывают. Просто добавьте знак равно
Как это выглядит:
Вывод:
🔥 Почему это круто: Python сам подставляет имя переменной и её значение. Экономит кучу времени при поиске багов!
Знали про этот трюк? Ставьте ❤️, если уже пользуетесь!
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
Признавайтесь, вы тоже часто пишете такие принты, чтобы проверить значение переменной?
name = "Alex"
age = 25
print("name =", name)
print("age =", age)
Это работает, но писать каждый раз название переменной в кавычках — долго и лениво. В Python есть супер-фишка для f-строк, о которой многие забывают. Просто добавьте знак равно
= после имени переменной внутри фигурных скобок!Как это выглядит:
name = "Alex"
age = 25
print(f"{name=}")
print(f"{age=}")
Вывод:
name='Alex'
age=25
🔥 Почему это круто: Python сам подставляет имя переменной и её значение. Экономит кучу времени при поиске багов!
Знали про этот трюк? Ставьте ❤️, если уже пользуетесь!
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
👍8
🧩 Задача: Проверка на анаграмму
Анаграммы, это слова, состоящие из одних и тех же букв, но в разном порядке. Например:
Как проверить, являются ли две строки анаграммами, максимально эффективно?
Вариант 1 (В лоб): Сортировка
Мы можем отсортировать обе строки и сравнить их.
Это работает, но сложность сортировки - O(N log N) . Можно ли быстрее? 🤔
Вариант 2 (Оптимальный): Подсчет символов
Используем словарь (или
💡 Совет: На собеседованиях всегда предлагайте сначала решение с сортировкой (оно проще), а потом удивляйте интервьюера знанием сложности алгоритмов и вариантом с хеш-таблицей (Counter)!
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
Анаграммы, это слова, состоящие из одних и тех же букв, но в разном порядке. Например:
ток и кот.Как проверить, являются ли две строки анаграммами, максимально эффективно?
Вариант 1 (В лоб): Сортировка
Мы можем отсортировать обе строки и сравнить их.
def is_anagram(s1, s2):
return sorted(s1) == sorted(s2)
Это работает, но сложность сортировки - O(N log N) . Можно ли быстрее? 🤔
Вариант 2 (Оптимальный): Подсчет символов
Используем словарь (или
Counter), чтобы посчитать, сколько раз встречается каждая буква. Сложность такого решения - O(N) , то есть линейная (самая быстрая).
from collections import Counter
def is_anagram_fast(s1, s2):
return Counter(s1) == Counter(s2)
print(is_anagram_fast("listen", "silent")) # True
💡 Совет: На собеседованиях всегда предлагайте сначала решение с сортировкой (оно проще), а потом удивляйте интервьюера знанием сложности алгоритмов и вариантом с хеш-таблицей (Counter)!
📲 Мы в MAX
Подписывайтесь на канал 👉@pythonofff
❤5👍1