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

জাভাস্ক্রিপ্টে একই ক্যারেক্টার দুটিয়ের মাঝপথে লองেস্ট সাবস্ট্রিং বের করা


সমস্যা বিবরণ

একটি স্ট্রিং দেওয়া আছে। একই ক্যারেক্টার দুটির মাঝপথে সবচেয়ে লম্বা সাবস্ট্রিং এর লেন্থ বের করতে হবে।

ইনপুট: 'avbghvh'

আউটপুট: ৩ (কারণ 'v' দুটির মাঝপথে 'bgh' আছে)

সমাধান

const str = 'avbghvh';

const longestSub = (str = '') => {
  const map = new Map();
  let max = -1;
  for (let i = 0; i < str.length; i++) {
    if (map.has(str.charAt(i))) {
      max = Math.max(max, i - map.get(str.charAt(i)) - 1);
    } else {
      map.set(str.charAt(i), i);
    }
  }
  return max;
};

console.log(longestSub(str)); // 3

আউটপুট

3

ব্যাখ্যা

  • Map দিয়ে প্রতিটি ক্যারেক্টারের ফার্স্ট অকারেন্স ইনডেক্স স্টোর করা হয়।
  • দ্বিতীয়বার পাওয়া গেলে দূরত্ব বের করা হয়: currentIndex - firstIndex - 1।
  • Math.max দিয়ে সর্বোচ্চ আপডেট করা হয়।
  1. জাভাস্ক্রিপ্টে ২-ডি প্লেনে দুটি পয়েন্টের দূরত্ব বের করা

  2. জাভাস্ক্রিপ্টে স্ট্রিংয়ে সর্বোচ্চ দীর্ঘ স্বরবর্ণ (vowel) সাবস্ট্রিং দৈর্ঘ্য

  3. জাভাস্ক্রিপ্টে দুটি স্ট্রিংয়ের অসাধারণ (uncommon) ক্যারেক্টার বের করা

  4. C++-এ সর্বাধিক দুটি ভিন্ন ক্যারেক্টারવાલা লংগেস্ট সাবস্ট্রিং