সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং স্ট্রিং নেয়, প্রথম আর্গুমেন্ট হিসাবে এবং একটি পূর্ণসংখ্যা হিসাবে, দ্বিতীয় আর্গুমেন্ট হিসাবে n। স্ট্রিং স্ট্রিং আলফানিউমেরিক অক্ষর এবং ড্যাশের সমন্বয়ে গঠিত।
ড্যাশগুলি স্ট্রিংয়ের মধ্যে আলফানিউমেরিক অক্ষরগুলিকে দলে ভাগ করে। (অর্থাৎ n ড্যাশ থাকলে, স্ট্রিংটি n+1 গ্রুপে বিভক্ত)। প্রদত্ত স্ট্রিং-এর ড্যাশগুলি সম্ভবত ভুলভাবে স্থানান্তরিত হয়েছে৷
৷আমরা চাই অক্ষরের প্রতিটি গ্রুপ কে দৈর্ঘ্যের হোক (সম্ভবত প্রথম গ্রুপটি বাদে, যা ছোট হতে পারে, কিন্তু তবুও অন্তত একটি অক্ষর থাকতে হবে)।
এই প্রয়োজনীয়তা সন্তুষ্ট করতে, আমরা ড্যাশ পুনরায় সন্নিবেশ করা হবে. তাছাড়া, আমাদের ফাংশনের স্ট্রিং-এর সমস্ত ছোট হাতের অক্ষরকে বড় হাতের অক্ষরে রূপান্তর করতে হবে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const str = '8-4B0t37-k'; const num = 4;
তারপর আউটপুট −
হওয়া উচিতconst output = '84B0-T37K';
আউটপুট ব্যাখ্যা:
স্ট্রিং স্ট্র দুটি ভাগে বিভক্ত করা হয়েছে, প্রতিটি অংশে 4টি অক্ষর রয়েছে৷
উদাহরণ
এর জন্য কোড হবে −
const str = '8-4B0t37-k'; const num = 4; const formatKey = (str = '', num = 1) => { let acc = ''; let flag = num; for(let i = str.length - 1; i >= 0; i--){ const char = str.charAt(i); if(char !== '-') { if(flag === 0) { acc = `-${acc}`; flag = num; }; acc = `${char.toUpperCase()}${acc}`; flag -= 1; }; }; return acc; }; console.log(formatKey(str, num));
কোড ব্যাখ্যা
আমাদের ফাংশন formatKey()-এ আমরা যে পদক্ষেপগুলি নিয়েছি তা হল −
-
আমরা বিপরীতভাবে পুনরাবৃত্তি করেছি, যাতে আমরা অবশিষ্ট অক্ষর
-
আমরা সন্নিবেশিত অক্ষর গণনা রাখা. এবং যখন এটি 0 ছিল, আমরা ড্যাশ সন্নিবেশ করান এবং সংখ্যাতে রিসেট করি।
আউটপুট
এবং কনসোলে আউটপুট হবে −
84B0-T37K