Я должен в основном иметь дело с сбалансированными круглыми скобками как проблема, но с небольшим изменением. мне нужно прочитать файл, который выглядит следующим образом (только 2 строки в файле):Анализ с помощью сбалансированной круглой скобки и получение соответствующих элементов
aguuguuagucuacguggaccgacaagaacaguuucgaaucggaagcuugcuuaacguaguucuaacaguuuuuuauuag agagcagaucucugaugaacaaccaacgaaaaaagacgggucgaccgucuuucaauaugcugaaac
...((((((.((((((...((((...(((....)))...)))(((....))).))))))..)))))).........((((((.....))))))..................(((((((.....))))))).................
Как вы можете видеть каждую букву имеет соответствующий «(» или «)» или «» связанные с ним, все скобки сбалансированы, но они вложены. Как и в случае с формулой, каждая «(» и «)» означает, что есть пара с соответствующими алфавитами в верхней части.
Для примера: если a "(" имеет алфавит "a" над ним и соответствующий ")" {который делает его сбалансированным} имеет надпись "u" над ней, означает, что существует "a" «u» спаривание. «.» означает, что эти алфавиты не имеют спаривания. таким образом мне нужно создать полное сопоставление всех пар и записать его в новый файл.
Во всех случаях «a» сопряжен с «u» и «g» в паре с «c».
Я собираюсь разбить это на более мелкие куски сбалансированной круглой скобки и преобразовать его в массивы, но мне трудно разобрать обе линии одновременно. Хотя я уже писал программы для проверки сбалансированной круглой скобки, но я не могу представить логику, чтобы отобразить каждую скобку в алфавит выше и сопоставить ее с алфавитом соответствующей круглой скобки.
Было бы очень признательно, если бы кто-то мог помочь мне с грубым контуром на этом, поскольку я действительно не добился существенного прогресса.
EDIT: Мне нужен выход для каждого набора сбалансированных скобок, чтобы выглядеть следующим образом:
Input: gaacaguuuc
(((....)))
Output: cagu have no pairs //because they have dots underneath
g-c
a-u
a-u
Я бы начал с создания узлов для синтаксического анализа вместо строк. Из вашего описания две строки образуют список узлов [.()] [Acgu]. тогда ваша задача должна проанализировать список узлов. Если я получу это правильно, вы можете пропустить. позиции, так что результат имеет только паратезис и буквы в узлах. – thst
Можете ли вы показать короткий выходной файл примера для сокращенной версии ввода. –
@Mike Я включил Sample i/o. – Advait