पूर्वनिर्धारित मानों के साथ चार चर a, b, c, d दिए गए हैं जो उपयोग किए गए चर के आधार पर दिए गए ब्रैकेट को प्रिंट करेंगे।
जहां परिवर्तनशील,
a for (( b for () c for )( d for ))
कार्य सभी दिए गए ब्रैकेट का उपयोग करना और संतुलित ब्रैकेट अभिव्यक्ति को प्रिंट करना है, यदि हम एक संतुलित ब्रैकेट अभिव्यक्ति नहीं बना सकते हैं तो -1 प्रिंट करें। एकाधिक उत्तरों के मामले में हम दिए गए कोष्ठकों का उपयोग करके बनाए जा सकने वाले एकाधिक उत्तरों में से कोई भी प्रिंट कर सकते हैं।
उदाहरण
Input: a = 3, b = 2, c = 4, d = 3 Output : (((((()()()()())))))()()
इस परिणाम को प्राप्त करने के लिए, हम पहले जांच सकते हैं कि दी गई कोष्ठकों की संख्या के साथ संतुलित कोष्ठक व्यंजक बनाया जा सकता है या नहीं। यदि दिए गए कोष्ठकों द्वारा व्यंजक बनाया जा सकता है तो हम करेंगे।
- प्रकार 1 कोष्ठकों की संख्या प्रिंट करें।
- प्रकार 3 कोष्ठकों की संख्या प्रिंट करें।
- प्रकार 4 कोष्ठकों की संख्या प्रिंट करें।
- प्रकार 2 कोष्ठकों की संख्या प्रिंट करें।
नीचे एल्गोरिथ्म और दृष्टिकोण का कार्यान्वयन है।
एल्गोरिदम
START Step 1 -> Declare Function void print(int a, int b, int c, int d) Declare int i IF ((a == d && a) || (a == 0 && c == 0 && d == 0)) Loop For i=1 and i<=a and i++ Print (( End Loop For i=1 and i<=c and i++ Print )( End Loop For i=1 and i<=d and i++ Print )) End Loop For i=1 and i<=b and i++ Print () End Else Print can’t be formed Step 2 -> main() Declare int a = 3, b = 2, c = 4, d = 3 Call print(a,b,c,d) STOP
उदाहरण
#include<stdio.h> void print(int a, int b, int c, int d){ int i; if ((a == d && a) || (a == 0 && c == 0 && d == 0)){ for (i = 1; i <= a; i++) printf("(("); for (i = 1; i <= c; i++) printf(")("); for (i = 1; i <= d; i++) printf("))"); for (i = 1; i <= b; i++) printf("()"); } else printf("can't be formed"); } int main(){ int a = 3, b = 2, c = 4, d = 3; print(a, b, c, d); return 0; }
आउटपुट
यदि हम उपरोक्त प्रोग्राम चलाते हैं तो यह निम्न आउटपुट उत्पन्न करेगा
(((((()()()()())))))()()