TG Telegram Group & Channel
Python/ django | United States America (US)
Create: Update:

🐍 Задача на Python: "Исчезающая цифра"

Условие:
У тебя есть список строк — чисел от 1 до 100, но одно из чисел случайно пропало.
Найди, какое число отсутствует. Нельзя использовать sum(), sorted(), Counter. Все числа в списке представлены как строки.

Пример:


import random

original = [str(i) for i in range(1, 101)]
missing = random.choice(original)
shuffled = original.copy()
shuffled.remove(missing)
random.shuffle(shuffled)


Напиши функцию:


def find_missing_number(data: list[str]) -> int:
...


📌 Подвох:
Нельзя просто сложить строки. Но можно использовать свойство XOR:


a ^ a = 0
0 ^ b = b


То есть: если мы сделаем XOR всех чисел от 1 до 100, а затем XOR всех чисел в переданном списке — результатом будет пропущенное число.

🧠 Решение:

```python
def find_missing_number(data: list[str]) -> int:
xor_full = 0
xor_data = 0

for i in range(1, 101):
xor_full ^= i

for val in data:
xor_data ^= int(val)

return xor_full ^ xor_data
```

Пояснение:
-
xor_full — XOR всех чисел от 1 до 100.
-
xor_data — XOR всех чисел в текущем списке (`str` → `int`).
- Разность
xor_full ^ xor_data вернёт единственное отсутствующее число.

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

```python
original = [str(i) for i in range(1, 101)]
original.remove("42")
random.shuffle(original)

print(find_missing_number(original)) # → 42
```

🔥 Эта задача хороша тем, что:
• содержит хитрый запрет на
sum()
• требует знания побитовых операций
• работает с типами (`str` vs `int`)
• подходит для собеседования уровня middle+

@pythonl

🐍 Задача на Python: "Исчезающая цифра"

Условие:
У тебя есть список строк — чисел от 1 до 100, но одно из чисел случайно пропало.
Найди, какое число отсутствует. Нельзя использовать sum(), sorted(), Counter. Все числа в списке представлены как строки.

Пример:


import random

original = [str(i) for i in range(1, 101)]
missing = random.choice(original)
shuffled = original.copy()
shuffled.remove(missing)
random.shuffle(shuffled)


Напиши функцию:


def find_missing_number(data: list[str]) -> int:
...


📌 Подвох:
Нельзя просто сложить строки. Но можно использовать свойство XOR:


a ^ a = 0
0 ^ b = b


То есть: если мы сделаем XOR всех чисел от 1 до 100, а затем XOR всех чисел в переданном списке — результатом будет пропущенное число.

🧠 Решение:

```python
def find_missing_number(data: list[str]) -> int:
xor_full = 0
xor_data = 0

for i in range(1, 101):
xor_full ^= i

for val in data:
xor_data ^= int(val)

return xor_full ^ xor_data
```

Пояснение:
-
xor_full — XOR всех чисел от 1 до 100.
-
xor_data — XOR всех чисел в текущем списке (`str` → `int`).
- Разность
xor_full ^ xor_data вернёт единственное отсутствующее число.

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

```python
original = [str(i) for i in range(1, 101)]
original.remove("42")
random.shuffle(original)

print(find_missing_number(original)) # → 42
```

🔥 Эта задача хороша тем, что:
• содержит хитрый запрет на
sum()
• требует знания побитовых операций
• работает с типами (`str` vs `int`)
• подходит для собеседования уровня middle+

@pythonl


>>Click here to continue<<

Python/ django




Share with your best friend
VIEW MORE

United States America Popular Telegram Group (US)