Учитывая две строки ввода печатного текста, а и б.
пусть расстояние редактирования между a и b является наименьшим количеством операций, необходимых для преобразования a в
б, напишите PHP-код, который рассчитывает расстояние редактирования, используя:
1. Расстояние Хемминга, в котором есть только операции замены (например, замена буквы X на
буква Y), укороченный текст с пробелами.
2. Расстояние Левенштейна: есть 3 возможных оператора: вставить, удалить или заменить
операции
функция должна учитывать все возможности, но не должна рассматривать одну и ту же часть дважды, и
сообщить наименьшее возможное расстояние
hamming_dis (a, b) возвращает целое число
levenshtein_dis (a, b) возвращает целое число
Ваш код должен использовать следующее:
1. ООП
2. два класса по одному на каждый режим Хэмминга или Левенштейна
2. один открытый статический помощник, который создает экземпляр, инициализирует состояние, выполняет
расчет и возврат результата
3. определить защищенные / приватные свойства, необходимые для хранения входных строк и
промежуточные данные, которые вы используете
5. закрытые / защищенные методы, которые вы вызываете рекурсивно, если это необходимо
6. эти методы должны смещаться от начала входных текстов вместо
проходящие подстроки
7. документируйте / комментируйте свой код
8. напишите другой файл, который требует вашего файла в качестве библиотеки и выполните некоторые тесты на нем
9. Напишите другой инструмент командной строки, который запрашивает две строки ввода и отображает
расстояние Левенштейна
10. написать веб-страницу в форме двух полей и вернуть левенство сопротивления,
предоставить инструкции для его запуска с помощью встроенного веб-сервера PHP из командной строки
пример расстояния Левенштейна
а: "это тест"
б: «это тест»
Левенштейн: 2 операции (удалить пробел и следующий пробел)
а: "это тест"
б: "это тест"
Левенштейн: 2 операции (замените i на e и удалите s)