Есть набор выражений вида:
cABd => e
A => AB
где 'c', 'd', 'e', 'A', 'B' - последовательности символов. 'A' и 'B' не должы быть пусты.
' => ' - служебный токен, разделяющий строку на две части, по сути, тоже цепочка символов.
Нужно, для множества строк, найти пары строк соответствующих таким выражениям. Т.е. отождествить строку n и строку k с выражением 1 и выражением 2 соответственно.
Затем нужно обьединить эти строки, по правилу вида:
A => cBde
Выражение - произвольное, каждая из цепочек может быть как слева так и справа от разделителя, как во входном выражении, так и в выходном.
Выражений порядка 10 шт. На данный момент решаю задачу написанием конечного автомата для каждого выражения, но выглядит это всё долго и муторно, отсюда вопрос - есть ли какой то алгоритм решающий эту задачу в более общем виде?