Я должен реализовать алгоритм, который принимает в качестве входных данных две строки и возвращает массив, содержащий диапазоны изменений подстроки.Как определить дельта перемен между двумя строками?
Скажем, диапазон определяется как
typedef struct _NSRange {
NSUInteger location; // Where the affected substring begins
NSUInteger length; // How long the affected substring is
} NSRange;
Пример:
string1 = "My cat sometimes likes to eat fish.";
string 2 = "My cat always likes to drink fresh water, and eat fish.";
Изменения:
- {7,9} "иногда" изменено на {7, 6} «всегда»
- {26,0} добавлено «выпить пресную воду» и «
Мне нужен массив, который содержит подстроки, сгруппированные по изменениям. В данном примере это будет выглядеть следующим образом:
- "Моя кошка"
- "всегда"
- "любит"
- "пить свежую воду, и"
- "едят рыбу."
Цель состоит в том, чтобы выделить эти изменения в существующей строке, для которой я должен разбить эту строку на подстроки на основе изменений.
Перед тем как изобретать колесо - есть ли решение в общественном достоянии?
Хотя это может технически ответить на вопрос, [было бы предпочтительнее] (http://meta.exackexchange.com/q/8259), чтобы вы включили в свой ответ важные части связанной статьи и предоставили ссылка для справки. –
Я ценю ваше замечание. ОП спрашивал, есть ли алгоритм, который делает то, что он пытается достичь. Поэтому я подтвердил это и дал ему имя алгоритма. Это был мой ответ. Связанная статья здесь относится к разграничению, а основные части - это имя алгоритма, а не его детали. – sch