समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखना है जो एक स्ट्रिंग str और एक संख्या n लेता है। हमारे फ़ंक्शन को दिए गए स्ट्रिंग str को n का उपयोग करके बदलना चाहिए।
n में प्रत्येक बिट निर्दिष्ट करेगा कि s में प्रत्येक अक्षर वर्ण के लिए केस को स्वैप करना है या नहीं -
यदि बिट 1 है, तो केस को स्वैप करें; यदि यह 0 है, तो इसे ऐसे ही रहने दें। जब हम n के अंतिम बिट के साथ समाप्त कर लें, तो पहले बिट से फिर से शुरू करें।
और अंत में, हमें इस प्रकार बनी नई स्ट्रिंग को वापस करना चाहिए।
उदाहरण
निम्नलिखित कोड है -
const str = 'hey there'; const num = 21; const swapCase = (str = '', num = 1) => { const alphaLength = str .split('') .reduce((acc, val) => val.toLowerCase() !== val.toUpperCase() ? ++acc : acc, 0); let binary = num.toString(2); while(binary.length < alphaLength){ binary += binary; }; let res = ''; for(let i = 0; i < str.length; i++){ const el = str[i]; if(el.toUpperCase() !== el.toLowerCase() && +binary[i] === 1){ if(el.toLowerCase() === el){ res += el.toUpperCase(); }else{ res += el.toLowerCase(); } }else{ res += el; }; }; return res; }; console.log(swapCase(str, num));
आउटपुट
कंसोल आउटपुट निम्नलिखित है -
HeY TheRe