Existe-t-il une méthode / un algorithme optimal pour des parenthèses supplémentaires inutiles dans les opérations BOOL ou arithmétiques?
-
06-07-2019 - |
Question
J'ai ceci, je l'ai construit par programme:
(( cat1:bobo AND ( ( cat2:jojo ) OR ( cat2:coco ) ) ))
Par souci de débogage, je recherche une bonne méthode qui la réduirait au strict minimum:
cat1:bobo AND ( cat2:jojo OR cat2:coco )
Je suis en C #, mais si vous avez déjà vu une bonne technique, je la porterai.
La solution
En supposant que vous analysiez l'expression dans une sorte d'arborescence, l'approche que j'ai adoptée par le passé consiste simplement à naviguer dans l'arborescence et à supprimer tous les nœuds qui ne sont que des conteneurs pour d'autres nœuds.
Autres conseils
si vous l'avez construit par programme, vous avez une sorte d'arbre d'expression. les noeuds qui ne sont pas AND ou OU les noeuds n'ont pas à rendre de parenthèses
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow