Я работаю над проблемой, когда у меня есть два набора ввода
Input1:
Несколько наборов правил (пример):
RuleSet1:
1. I am $name
2. I am $age years old
3. $bookname is my favorite book
....
RuleSet2:
1. I love $sportname
2. $color is my favorite color
....
RuleSet3:
1. $fruit is my favorite fruit
2. I am a $diet
3. I speak $language
4. I am from $countryname
....
Здесь $ name, $ age, $ bookname ... являются заполнителями. Таких наборов правил может быть несколько. Ограничения нет.
Input2:
Несколько наборов входных строк.
Set 1:
1. I am 26 years old
2. I am James
.....
Набор 2:
1. I am John
2. ToKillAMockinBird is my favorite book
.......
Набор 3:
1. TuesdaysWithMorrie is my favorite book
2. I am Bill
3. I am 26 years old
......
Набор 4:
1. I am Jack
2. I am 27 years old
3. WarAndPeace is my favorite book
......
Набор 5:
1. I am a vegan
2. I speak English
......
Набор 6:
1. Purple is my favorite color
2. I love football
......
Постановка задачи:
Для каждого набора строк на входе 2 мне нужно сопоставить с входом 1 и сказать, появились ли эти строки в том же порядке или нет.
Выход:
Set1 --> false
Set2 --> true
Set3 --> false
Set4 --> true
Set5 --> true
Set6 --> false
Я пытался перебором, перебирая каждую строку в каждом входном наборе и проверяя, существует ли она или нет, если да, давая им число, наконец проверяя, находятся ли эти числа в порядке возрастания илине. Но это не эффективно. Входные данные Set1, set2 могут быть огромными наборами данных. Есть ли лучший способ решить это?