সমস্যা
একটি জাদুকরী স্ট্রিং শুধুমাত্র '1' এবং '2' নিয়ে গঠিত এবং নিম্নলিখিত নিয়মগুলি মেনে চলে -
স্ট্রিং স্ট্রটি জাদুকরী কারণ '1' এবং '2' অক্ষরের সংলগ্ন ঘটনার সংখ্যা একত্রিত করা স্ট্রিং নিজেই তৈরি করে।
স্ট্রিং str এর প্রথম কয়েকটি উপাদান হল নিম্নলিখিত −
str = "1221121221221121122……"
আমরা যদি পরপর '1' এবং '2'-কে str-এ গোষ্ঠীবদ্ধ করি, তা হবে −
1 22 11 2 1 22 1 22 11 2 11 22 ......
এবং প্রতিটি গ্রুপে '1' বা '2'-এর উপস্থিতি হল −
1 2 2 1 1 2 1 2 2 1 2 2 ......
আমরা দেখতে পাচ্ছি যে উপরের ঘটনার ক্রমটি স্ট্রিং নিজেই।
ইনপুট হিসাবে আমাদের একটি পূর্ণসংখ্যা দেওয়া হয়েছে, এবং আমাদের জাদুকরী স্ট্রিং স্ট্রিং-এর প্রথম সংখ্যা সংখ্যার মধ্যে '1'-এর সংখ্যা ফেরত দিতে হবে।
উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −
const num = 6;
তারপর আউটপুট −
হওয়া উচিতconst output = 3;
আউটপুট ব্যাখ্যা:
জাদুকরী স্ট্রিং S এর প্রথম 6টি উপাদান হল "12211" এবং এতে তিনটি 1'স আছে, তাই 3 ফেরত দিন৷
উদাহরণ
এর জন্য কোড হবে −
const num = 6; const magicalString = (num = 1) => { let ind = 12; let str = '1221121221221121122'; while(str.length < num){ const end = str.substring(str.length - 1) === '2' ? '1' : '2'; str = parseInt(str.substring(ind, ind + 1)) === 2 ? str + end + end : str + end; ind++; }; return (str.substring(0, num).match(/1/g)||[]).length; }; console.log(magicalString(num));
আউটপুট
এবং কনসোলে আউটপুট হবে −
3