Как сделать проверку правописания через хеширование?
Прошу помочь с решением задачи, а то уже больше часов 4 сижу и никак понять не могу.
ОГРАНИЧЕНИЕ ПО ВРЕМЕНИ -2 секунды. Входные значения строки длиной до 10^6
Задача:
Петя заметил, что когда он набирает текст на клавиатуре, у него часто нажимаются лишние клавиши и в словах возникают лишние буквы. Конечно же, система проверки правописания подчеркивает ему эти слова, ему приходится кликать на слово и выбирать правильный вариант. Пете надоело исправлять свои ошибки вручную, поэтому он решил реализовать функцию, которая сама будет вносить исправления. Петя начал с разбора наиболее часто встречающегося у него случая, когда из слова достаточно удалить одну букву, чтобы оно совпало с некоторым словом из словаря. Итак, Петя столкнулся с такой подзадачей: дано введенное слово и слово из словаря, нужно удалить из первого слова одну букву, чтобы получилось второе. И тогда перед Петей встал весьма нетривиальный вопрос: какую букву удалять? Входные данные:
Входные данные содержат две строки, состоящие из строчных латинских букв. Длина строк от 1 до 10^6 символов включительно, первая строка содержит ровно на 1 символ больше, чем вторая. Выходные данные:
В первой строке выведите количество позиций символов в первой строке, при удалении каждого из которых получается вторая строка. Во второй строке через пробел выведите сами позиции в порядке возрастания. Позиции нумеруются с 1. Если из первой строки невозможно получить вторую путем удаления одного символа, выведите одно число 0.
Пример
входные данные
abdrakadabra
abrakadabra
выходные данные:
1
3
Saboteur, там асимптотика алгоритма по идеи должна быть O(n+m) (вроде как) , написание данного алгоритма с такой асимптотикой можно сделать ток через хеширование)
Как водится, решение никуда не годится.
Пример:
a = 'a' * 10
b = 'a' * 9
Выходные данные:
В первой строке выведите количество позиций символов в первой строке, при удалении каждого из которых получается вторая строка. Во второй строке через пробел выведите сами позиции в порядке возрастания.
longclaps, а это и не решение, а всего лишь указание на инструмент, который можно применять. Ответ даётся абсолютно корректный - удалить последний символ. Осталось только отформатировать его к тому виду, который требуется в задаче:
Просто кто-то не умеет пользоваться библиотеками Python)