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

জাভাস্ক্রিপ্টে সিমিলার স্ট্রিং গ্রুপ খুঁজে বের করা

দুটি স্ট্রিং str1 এবং str2 সিমিলার যদি আমরা str1-এর দুটি অক্ষর (ভিন্ন পজিশনে) সোয়াপ করলে সেটি str2-এর সমান হয়। এছাড়া, দুটি স্ট্রিং সিমিলার যদি সেগুলো সমান হয়।

উদাহরণস্বরূপ, "tars" এবং "rats" সিমিলার (পজিশন ০ এবং ২-এ সোয়াপ করলে), এবং "rats" এবং "arts" সিমিলার, কিন্তু "star" কোনোভাবে "tars", "rats", বা "arts" এর সাথে সিমিলার নয়।

এই সিমিলারিটি দিয়ে দুটি কানেক্টেড গ্রুপ তৈরি হয়: {"tars", "rats", "arts"} এবং {"star"}। লক্ষ্য করুন "tars" এবং "arts" একই গ্রুপে রয়েছে যদিও সেগুলো সরাসরি সিমিলার নয়।

ফরম্যালি, প্রতিটি গ্রুপ এমন যে একটি শব্দ গ্রুপে থাকবে যদি এবং কেবল যদি সেটি গ্রুপের কমপক্ষে একটি অন্য শব্দের সাথে সিমিলার হয়।

একটি স্ট্রিং লিস্ট arr দেওয়া আছে যেখানে arr-এর প্রতিটি স্ট্রিং অন্য সব স্ট্রিংয়ের অনুগ্রাম (anagram)। আমাদের একটি ফাংশন লিখতে হবে যা বের করবে মোট কতগুলো গ্রুপ আছে।

উদাহরণ

নিচে কোড দেওয়া হলো:

const arr = ["tars","rats","arts","star"]; 
const isSimilar = (str1, str2) => { 
   const obj = {} 
   let counter = 0 
   for(let i=0; i< str1.length; i++){ 
      if(str1[i] !== str2[i]) { counter++ } 
          obj[str1[i]] = str2[i] 
      } 
      return counter === 2? true : false 
   } 
   const similarStringGroup = (arr = []) => { 
      const group = [[arr[0]]] 
      for(let i=1; i<arr.length; i++){ 
          let match = false 
          for(let j=0; j<group.length; j++){ 
            for(let k=0; k< group[j].length; k++){ 
                const booleanMatch = isSimilar(group[j][k], arr[i]) 
                if(booleanMatch) { 
                  group[j].push(arr[i]); 
                  match = true 
                  break; 
                } 
            } 
            if(match === true) { break } 
          } 
          if(match === false){ group.push([arr[i]]) } 
      } 
      return group.length 
} 
console.log(similarStringGroup(arr));

আউটপুট

কনসোল আউটপুট:

2
  1. জাভাস্ক্রিপ্ট মেথড: charAt() মেথড

  2. JavaScript Split মেথড: স্টেপ-বাই-স্টেপ গাইড

  3. JavaScript-এ Strings-এ একটি ইন্ট্রোডাকশন

  4. জাভাস্ক্রিপ্ট দিয়ে স্ট্রিং বুলিয়ানে রূপান্তর করা