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

জাভাস্ক্রিপ্টে সমীকরণের বৈধতা যাচাই করা


সমস্যা

আমাদের একটি জাভাস্ক্রিপ্ট ফাংশন লিখতে হবে যা একটি অ্যারে (arr) নেবে। অ্যারে-এ স্ট্রিং সমীকরণ থাকে দুটি ধরণের –
• 'X === Y'
• 'X !== Y'
এখানে X এবং Y যেকোনো ভেরিয়েবল হতে পারে। ফাংশনটি যাচাই করবে কিনা সমস্ত সমীকরণের জন্য কিছু সংখ্যা অ্যাসাইন করা যায় যাতে সব সমীকরণ true হয়।

উদাহরণস্বরূপ, ইনপুট যদি হয় –

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. জাভাস্ক্রিপ্ট const কীওয়ার্ড

  2. জাভাস্ক্রিপ্টে Const এবং Let এর পার্থক্য

  3. জাভাস্ক্রিপ্টে ডাবলটন নম্বর (Doubleton Number) যাচাই করা

  4. জাভাস্ক্রিপ্টে দুটি অ্যারের বর্গ সমানতা যাচাই