আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা প্রথম আর্গুমেন্ট হিসেবে একটি স্ট্রিং অ্যারে এবং দ্বিতীয় আর্গুমেন্ট হিসেবে একটি স্ট্রিং নিবে। ফাংশনটি চেক করবে যে দ্বিতীয় আর্গুমেন্টের স্ট্রিংটি কি প্রথম আর্গুমেন্টের স্ট্রিংগুলোর যেকোনো সম্ভাব্য কম্বিনেশন দিয়ে তৈরি করা যায়।
উদাহরণ: ইনপুট অ্যারে:
const arr = ["for","car","keys","forth"];
স্ট্রিং:
const str = "forthcarkeys";
আউটপুট হবে true, কারণ স্ট্রিংটি অ্যারেতে ৩, ১ এবং ২ নম্বর ইন্ডেক্সের এলিমেন্টগুলোর কম্বিনেশন।
উদাহরণ
এটির কোড হবে:
const arr = ["for","car","keys","forth"]; const str = "forthcarkeys"; const checkPossibility = (str = '', arr = []) => { let possibilities = arr.reduce(function (r, a) { let p = str.indexOf(a); while (p !== -1) { r.push({ word: a, position: p }); p = str.indexOf(a, p + 1); } return r; }, []); const findRecursively = (i, t) => { let s = t.slice(), j; if (i === possibilities.length) { return !t.join(''); } if (possibilities[i].word.split('').every(function (c, j) { return s[j + possibilities[i].position] !== ''; })) { for (j = 0; j < possibilities[i].word.length; j++) { s[j + possibilities[i].position] = ''; } } return findRecursively(i + 1, s) || findRecursively(i + 1, t); } return findRecursively(0, str.split('')); }; console.log(checkPossibility(str, arr));
আউটপুট
কনসোলে আউটপুট হবে:
true