समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना आवश्यक है जो संतुलित वर्ग ब्रैकेट स्ट्रिंग, str को पहले और एकमात्र तर्क के रूप में लेता है।
हमारे फ़ंक्शन को निम्नलिखित नियम के आधार पर स्ट्रिंग के स्कोर की गणना और वापसी करनी चाहिए -
-
[] का स्कोर 1 है
-
एबी का स्कोर ए + बी है, जहां ए और बी संतुलित ब्रैकेट स्ट्रिंग हैं।
-
[ए] का स्कोर 2 * ए है, जहां ए एक संतुलित ब्रैकेट स्ट्रिंग है।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const str = '[][]';
आउटपुट
const output = 2;
उदाहरण
निम्नलिखित कोड है -
const findScore = (str = '') => { const arr = [] for(const char of str) { arr.push(char) while(arr[arr.length - 1] === ']') { arr.pop() if(arr[arr.length - 1] === '[') { arr.pop() arr.push(1) } else { let num = arr.pop() while(arr[arr.length - 1] >= 1) { num += arr.pop() } arr.pop() arr.push(2 * num) } } } return arr.reduce((acc, a) => acc + a, 0) }; console.log(findScore(str));
आउटपुट
2