2009-07-31 13 views
0

Ich habe dies, ich habe es programmatisch gebaut:Gibt es eine optimale Methode/Algorithmus, um unnötige zusätzliche Pars in BOOL oder arithmetischen Operationen

((cat1:bobo AND ((cat2:jojo) OR (cat2:coco)))) 

Aus Gründen der Fehlersuche, ich bin auf der Suche nach einer guten Methode, würde im Grunde reduzieren sie auf geringste Menge an Pars benötigt:

cat1:bobo AND (cat2:jojo OR cat2:coco) 

ich bin auf C#, aber wenn man eine gute Technik haben haben Sie gesehen, werde ich portieren.

Antwort

1

Angenommen, Sie analysieren den Ausdruck in eine Art von Baumstruktur, dann ist der Ansatz, den ich in der Vergangenheit unternommen habe, nur um zu navigieren durch den Baum und entfernen Sie alle Knoten, die nur ein Container für andere Knoten sind.

0

Wenn Sie es programmgesteuert erstellt haben, haben Sie eine Art von Ausdrucksbaum. Knoten, die keine UND- oder ODER-Knoten sind, müssen keine Klammern machen