Привет, у меня есть задания и я написала для них коды, но ответы моей программы не сходятся с ответами в примере. Подскажите, пожалуйста, где я допустила ошибку и как ее пофиксить?
Задание 1. Дан список целых чисел. Этот список должен содержать последовательные числа от 1 до n. Но из-за ошибки одно число в списке повторяется и заменяет собой следующее в последовательности число. Напишите функцию, которая принимает список с ошибкой и выдает список, который будет содержать повторяющее число и то число, которое отсутствует в списке из-за ошибки. При решении использовать множество.
Например:
список с ошибкой: [1, 2, 3, 3, 5]. Вывод функции: [3, 4]
список с ошибкой: [1, 2, 2]. Вывод функции: [2, 3]
Задание 2. Напишите функцию, которая проверяет, что строка состоит из всех букв алфавита. Если это так, то посчитайте сколько там было лишних букв, которые использовались больше одного раза.
Например:
Строка: Съешь же ещё этих мягких французских булок да выпей чаю. Вывод функции: Да, 13
Тут такие трехэтажные обои на два десятка строк не нужны... Ну вот первое def f(x):
n = []
for i in range(len(x) - 1):
if x == x[i + 1]:
n += [x, x + 1]
return n
def check_pangram(input_string):
# Русский алфавит с буквой Ё
alphabet = set("абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
s = input_string.lower()
# Оставляем только русские буквы
letters = [ch for ch in s if ch in alphabet]
freq = Counter(letters)
# Проверяем, есть ли все буквы
if alphabet.issubset(freq.keys()):
# Суммируем все "лишние" вхождения
extra = sum(freq[ch] - 1 for ch in alphabet)
return f"Да, {extra}"
else:
return "Нет"
# Примеры
print(check_pangram("Съешь же ещё этих мягких французских булок да выпей чаю") # "Да, 13"
print(check_pangram("Привет мир") # "Нет"