সমস্যা
আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি স্ট্রিং অ্যারে (arr) নেবে। ফাংশনটি সেই সব অক্ষরের অ্যারে রিটার্ন করবে যেগুলো অ্যারে-এ সব স্ট্রিং-এ দিকхомুখে থাকে (ডুপ্লিকেট সহ)।
উদাহরণস্বরূপ, যদি কোনো অক্ষর সব স্ট্রিং-এ ২ বার থাকে কিন্তু ৩ বার না থাকে, তবে সেটি ২ বার ফাইনাল আউটপুটে থাকবে।
উদাহরণস্বরূপ, ইনপুট যদি হয় –
const arr = ['door', 'floor', 'crook'];
তবে আউটপুট হবে –
const output = ['r', 'o', 'o'];
উদাহরণ
কোডটি নিচের মতো –
const arr = ['door', 'floor', 'crook']; const findCommon = (arr = []) => { let prev = null; arr.forEach((str) => { const next = {}; for(const val of str){ if(!prev){ next[val] = (next[val] || 0) + 1; }else if(prev[val]){ prev[val] -= 1; next[val] = (next[val] || 0) + 1; }; }; prev = next; }); const res = Object.keys(prev).reduce((acc, val) => { for(let i = 0; i < prev[val]; i++){ acc.push(val); } return acc; }, []); return res; }; console.log(findCommon(arr));আউটপুট
কনসোলে আউটপুট হবে –
[ 'r', 'o', 'o' ]