हमें कोण ब्रैकेट्स की एक स्ट्रिंग दी गई है, और हमें एक फ़ंक्शन लिखना है जो स्ट्रिंग के शुरुआत और अंत में ब्रैकेट्स जोड़कर सभी ब्रैकेट्स को मिलान करवाता है।
कोण ब्रैकेट्स मेल खाते हैं यदि हर '<' के लिए एक संबंधित '>' है और हर '>' के लिए एक संबंधित '<' है।
उदाहरण के लिए - यदि इनपुट स्ट्रिंग है -
const str = '><<><';
आउटपुट
तो आउटपुट होना चाहिए -
const output = '<><<><>>';
यहां, हमने शुरुआत में '<' और अंत में '>>' जोड़ा ताकि स्ट्रिंग बैलेंस हो जाए।
हम एक संख्या का उपयोग करेंगे जो अब तक खुले '<' टैग की संख्या गिनती रखेगी। और फिर, जब हम एक '>' टैग देखते हैं, यदि कोई वर्तमान खुला टैग नहीं है, तो हम स्ट्रिंग की शुरुआत में '<' जोड़ देंगे (खुले टैग गिनती को 0 पर रखते हुए)। फिर, अंत में, वर्तमान में खुले टैग की संख्या से मेल खाने वाले '>' की संख्या जोड़ देंगे।
उदाहरण
इसके लिए कोड होगा -
const str = '><<><';
const buildPair = (str = '') => {
let count = 0;
let extras = 0;
for (const char of str) {
if (char === '>') {
if (count === 0) {
extras++;
} else {
count--;
}
} else {
count++;
}
}
const leadingTags = '<'.repeat(extras);
const trailingTags = '>'.repeat(count);
return leadingTags + str + trailingTags;
};
console.log(buildPair(str));आउटपुट
कंसोल में आउटपुट होगा -
<><<><>>