কম্পিউটার টিউটোরিয়াল

জাভাস্ক্রিপ্টে সোর্স অ্যারে থেকে টার্গেট অ্যারে ফর্ম করা সম্ভব কিনা যাচাই


সমস্যা বিবরণ

একটি টার্গেট অ্যারে arr এবং সাব-অ্যারেগুলোর অ্যারে sourceArr দেওয়া আছে। sourceArr এর সাব-অ্যারেগুলো যেকোনো ক্রমে কনক্যাট করলে arr বানাবে কিনা চেক করতে হবে। সাব-অ্যারের ভেতরের ক্রম বদলানো যাবে না।

উদাহরণ: arr = [23, 67, 789], sourceArr = [[23], [789, 67]] → false (কারণ [789, 67] থেকে 67, 789 বানানো যায় না)।

সমাধান

const arr1 = [23, 67, 789];
const arr2 = [23, 789, 67];
const sourceArr = [[23], [789, 67]];

const validFormation = (arr, sourceArr) => {
  const indexes = new Array(100);
  let arrIndex = 0;
  let index;
  
  for (let i = 0; i < sourceArr.length; ++i) {
    indexes[sourceArr[i][0]] = i;
  }
  
  while (arrIndex < arr.length) {
    index = indexes[arr[arrIndex]];
    if (index === undefined) return false;
    for (let j = 0; j < sourceArr[index].length; ++j) {
      if (arr[arrIndex] !== sourceArr[index][j]) return false;
      ++arrIndex;
    }
  }
  return true;
};

console.log(validFormation(arr1, sourceArr)); // false
console.log(validFormation(arr2, sourceArr)); // true

আউটপুট

false true

ব্যাখ্যা

  • indexes অ্যারে দিয়ে প্রতিটি সাব-অ্যারের ফার্স্ট এলিমেন্টের ইনডেক্স ম্যাপ করা হয়েছে।
  • টার্গেট অ্যারে ট্রাভার্স করে ম্যাচিং সাব-অ্যারে খুঁজে বের করা হয়েছে।
  • সাব-অ্যারের সব এলিমেন্ট ক্রমাগত ম্যাচ করতে হবে।
  1. জাভাস্ক্রিপ্টে অ্যারে থেকে উপাদান সরানো

  2. জাভাস্ক্রিপ্ট Array.from() মেথড

  3. জাভাস্ক্রিপ্ট Array.from() মেথড

  4. জাভাস্ক্রিপ্টে অ্যারে থেকে মিলিয়ে যাওয়া জোড়া বের করা