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

জাভাস্ক্রিপ্টে ভিন্ন স্ট্রিংগুলোর মধ্যে সাদৃশ্য (Intersection) খুঁজে বের করা


আমাদের কাছে দুটি সংখ্যা অ্যারে আছে, এবং আমাদের একটি intersection() ফাংশন লিখতে হবে যা তাদের ইন্টারসেকশন গণনা করবে এবং ইন্টারসেক্ট করা উপাদানগুলো ধারণকারী একটি অ্যারে ফেরত দেবে (যেকোনো ক্রমে)। ফলাফলে প্রতিটি উপাদান ততবারই থাকবে যতবার সেটি দুটি অ্যারেতে উভয়েই থাকে।

উদাহরণ:

ইনপুট যদি হয় −

arr1 = ['hello', 'world', 'how', 'are', 'you']; arr2 = ['hey', 'world', 'can', 'you', 'rotate'];

তবে আউটপুট হওয়া উচিত −

['world', 'you'];

অ্যাপরোচ:

যদি অ্যারেগুলো সাজানো থাকত, আমরা টু-পয়েন্টার অ্যাপ্রোচ ব্যবহার করতে পারতাম। কিন্তু যেহেতু অ্যারেগুলো অসাজানো, সর্ট করে টু-পয়েন্টার ব্যবহার করলে সময় জটিলতা বাড়বে। তাই আমরা প্রথম অ্যারের প্রতিটি মান দ্বিতীয় অ্যারেতে খুঁজে ইন্টারসেকশন অ্যারে তৈরি করব। এতে O(n^2) সময় লাগবে।

তাহলে, এই ফাংশনটির কোড লিখি −

উদাহরণ

কোডটি হবে −

arr1 = ['hello', 'world', 'how', 'are', 'you']; arr2 = ['hey', 'world', 'can', 'you', 'rotate']; const intersectElements = (arr1, arr2) => {   const res = [];   const { length: len1 } = arr1;   const { length: len2 } = arr2;   const smaller = (len1 < len2 ? arr1 : arr2).slice();   const bigger = (len1 >= len2 ? arr1 : arr2).slice();   for(let i = 0; i < smaller.length; i++) {     if(bigger.indexOf(smaller[i]) !== -1){       res.push(smaller[i]);       bigger.splice(bigger.indexOf(smaller[i]), 1, undefined);     }   };   return res; }; console.log(intersectElements(arr1, arr2));

আউটপুট

কনসোলে আউটপুট হবে −

[ 'world', 'you' ]

  1. TypeScript এবং JavaScript-এর পার্থক্য

  2. জাভাস্ক্রিপ্ট এবং PHP-এর পার্থক্য

  3. জাভাস্ক্রিপ্টে টেমপ্লেট স্ট্রিংস

  4. জাভাস্ক্রিপ্টে নেস্টেড টেমপ্লেট স্ট্রিং