Как напечатать все возможные комбинации набора скобок и выражений, чтобы они могли быть оценены позже? - PullRequest
0 голосов
/ 08 июня 2018

Ниже приведен фрагмент кода, где brack - это набор скобок, которые сбалансированы, а myExpression содержит логическую операцию, которая может иметь |и оператор.Есть ли способ, которым я могу напечатать все возможные комбинации скобок.

 /*  //  myExpression=a|b|c&d brack=((()))    */


brack = brack.substring(0,1) + brack.substring(1,2) + brack.substring(2,3) + 
  myExpression.substring(0,3) + brack.substring(3,4) + 
  myExpression.substring(3,5) + brack.substring(4,5) + 
  myExpression.substring(5,7) + brack.substring(5,6);

Это ручной подход, который я пробовал.Они должны вывести (((a|b)|c)&d), (a|(b|(c&d))), ((a|b)|(c&d)), (a|((b|c)&d)), ((a|(b|c))&d), и как только мы увеличим скобки и длину выражения, он должен показать все возможные комбинации скобок и переменных.

1 Ответ

0 голосов
/ 08 июня 2018

уточните мне, кажется ли ваш вывод неправильным, как myExpression=a|b|c&d, поэтому при заключении этого в скобки действительный будет такой, как

((a|b)|(c&d))

, но ваш пример показывает

(((a|b)|c)|d)

, что неверно, так как у вас нет &.

пожалуйста, не голосуйте, как я добавил в комментариях из-за репутации менее 50

...