Строки на расстоянии редактирования не более 1 (One Edit Distance)
3
Строки
Условие:
Даны две строки s1 и s2, состоящие из строчных латинских букв. Требуется определить, находятся ли они на «расстоянии редактирования» ровно 1 — то есть можно ли превратить одну строку в другую ровно одной из трёх операций:
заменить один символ (если строки одинаковой длины);
вставить один символ (если вторая строка длиннее первой на 1);
удалить один символ (если первая строка длиннее второй на 1).
Если строки идентичны, либо отличаются больше чем на одну операцию, либо разница в длине больше 1 — функция должна вернуть false.
Входные данные:
Две строки s1 и s2.
Выходные данные:true, если строки отличаются ровно одной операцией редактирования, иначе false.
Ограничения:
0 <= s1.length, s2.length <= 10^4строки состоят только из строчных латинских букв
Примеры:
Вход: s1 = "pale", s2 = "ple" → Выход: true (удалён символ "a")
Вход: s1 = "cab", s2 = "cf" → Выход: false (несовпадение более чем в одной позиции при сдвиге)
Вход: s1 = "abc", s2 = "abc" → Выход: false (строки идентичны, ни одной операции не требуется)
Вход: s1 = "abc", s2 = "abd" → Выход: true (заменён один символ)