কম্পিউটার

জাভাস্ক্রিপ্টে সমীকরণের বৈধতা পরীক্ষা করা হচ্ছে


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি অ্যারে, অ্যার, প্রথম এবং একমাত্র যুক্তি হিসাবে নেয়৷

অ্যারে অ্যারে নিম্নলিখিত দুটি ধরণের −

স্ট্রিং সমীকরণ নিয়ে গঠিত
  • 'X ===Y'

  • X!==Y’

এখানে, X এবং Y যেকোনো ভেরিয়েবল হতে পারে।

আমাদের ফাংশনটি অ্যারের সমস্ত সমীকরণের জন্য পরীক্ষা করার জন্য অনুমিত হয়, আমরা কিছু সংখ্যা বরাদ্দ করতে পারি যাতে অ্যারের সমস্ত সমীকরণ সত্য হয়৷

উদাহরণস্বরূপ, যদি ফাংশনে ইনপুট হয় −

const arr = ['X===Y', 'Y!==Z', 'X===Z'];

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

হওয়া উচিত
const output = false;

আউটপুট ব্যাখ্যা:

আমরা X, Y এবং Z-এর জন্য যে মানই বেছে নিই না কেন। তিনটি সমীকরণ কখনোই সন্তুষ্ট হতে পারে না।

উদাহরণ

এর জন্য কোড হবে −

const arr = ['X===Y', 'Y!==Z', 'X===Z'];
const validateEquations = (arr = []) => {
   const map = {};
   const len = {};
   const inValids = [];
   const find = (item) => {
      while(map[item] && item !== map[item]){
         map[item] = map[map[item]];
         item = map[item];
      };
      return item;
   };
   const add = (a, b) => {
      const first = find(a);
      const second = find(b);
      if(first === second){
         return;
      };
      if(len[first] < len[second]){
         map[first] = second;
         len[second] += len[first];
      }else{
         map[second] = first;
         len[first] += len[second];
      }
   }
   arr.forEach((item) => {
      const X = item[0];
      const Y = item[4];
      map[X] = map[X] || X;
      map[Y] = map[Y] || Y;
      len[X] = len[X] || 1;
      len[Y] = len[Y] || 1;
      if(item[1] === '!'){
         inValids.push([X, Y]);
      }else{
         add(X, Y);
      };
   });
   return inValids.every(([a, b]) => find(a) !== find(b))
};
console.log(validateEquations(arr));

আউটপুট

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

false

  1. জাভাস্ক্রিপ্ট কনস্ট

  2. জাভাস্ক্রিপ্টে কনস্ট বনাম চলুন।

  3. জাভাস্ক্রিপ্টে একটি ডাবলটন নম্বর পরীক্ষা করা হচ্ছে

  4. জাভাস্ক্রিপ্টে অ্যারের অনুরূপ বর্গক্ষেত্র পরীক্ষা করা হচ্ছে