কম্পিউটার

জাভাস্ক্রিপ্টে বিভিন্ন স্ট্রিংয়ের মধ্যে মিল


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

উদাহরণস্বরূপ:

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

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

তারপর আউটপুট −

হওয়া উচিত
['world', 'you'];

পন্থা:

যদি অ্যারেগুলি সাজানো থাকত, তাহলে আমরা দুই-পয়েন্টার পদ্ধতি ব্যবহার করতে পারতাম প্রাথমিকভাবে সংশ্লিষ্ট অ্যারের শুরুতে 0-তে উভয় পয়েন্টার করে এবং আমরা সংশ্লিষ্ট পয়েন্টারটি বাড়ানোর সাথে এগিয়ে যেতে পারতাম এবং এটি O(m+n) জটিল w.r.t. সময় যেখানে m এবং n অ্যারের মাপ।

কিন্তু যেহেতু আমাদের কাছে সাজানো বিন্যাস নেই অ্যারে সাজানোর এবং তারপরে এই পদ্ধতি ব্যবহার করার কোন যুক্তি নেই, আমরা দ্বিতীয়টির বিপরীতে প্রথমটির প্রতিটি মান পরীক্ষা করব এবং একটি ছেদবিশিষ্ট বিন্যাস তৈরি করব৷

এতে আমাদের 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. টাইপস্ক্রিপ্ট এবং জাভাস্ক্রিপ্টের মধ্যে পার্থক্য

  2. জাভাস্ক্রিপ্ট এবং পিএইচপি এর মধ্যে পার্থক্য

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

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