সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং (str) এবং একটি সংখ্যা (n) নেবে। ফাংশনটি n ব্যবহার করে স্ট্রিং-কে পরিবর্তন করবে।
n-এর প্রতিটি বিট নির্দেশ করবে স্ট্রিং-এর প্রতিটি আলফাবেটিক ক্যারেক্টারের কেস সোয়াপ করা হবে কিনা –
• বিট ১ হলে কেস সোয়াপ করবে
• বিট ০ হলে অপরিবর্তিত থাকবে
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