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

জাভাস্ক্রিপ্টে এক্সপ্রেসিভ ওয়ার্ডস সমস্যা সমাধান

কখনো কখনো লোকজন আবেগ প্রকাশের জন্য অক্ষর রিপিট করে, যেমন "hello" → "heeellooo", "hi" → "hiiii"। এই স্ট্রিংগুলতে ("heeellooo") সমান অক্ষরের অ্যাডজেসেন্ট গ্রুপ থাকে: "h", "eee", "ll", "ooo"।

দেওয়া স্ট্রিং S এর জন্য, একটি কোয়েরি ওয়ার্ড স্ট্রেচি হবে যদি এটি এক্সটেনশন অপারেশন দিয়ে S এর সমান করা যায়: কোনো গ্রুপের অক্ষর c নির্বাচন করে সেখানে c যোগ করা যাতে গ্রুপের সাইজ ৩ বা তার বেশি হয়।

উদাহরণ: "hello" থেকে "o" গ্রুপ এক্সটেন্ড করে "hellooo" করা যায়, কিন্তু "helloo" নয় কারণ "oo" সাইজ ৩-এর কম। আবার "ll" → "lllll" করে "helllllooo" করা যায়। যদি S = "helllllooo", তবে "hello" স্ট্রেচি কারণ: "hello" → "hellooo" → "helllllooo" = S।

কোয়েরি ওয়ার্ডের লিস্ট দেওয়া থাকলে, কতগুলো ওয়ার্ড স্ট্রেচি সেটা বের করতে হবে।

উদাহরণ: ইনপুট স্ট্রিং:

const str = 'heeellooo';

ওয়ার্ড লিস্ট:

const words = ["hello", "hi", "helo"];

আউটপুট:

const output = 1

উদাহরণ

এটির কোড হবে:

const str = 'heeellooo'; const words = ["hello", "hi", "helo"]; const extraWords = (str, words) => {    let count = 0;    for (let w of words) {       let i = 0;       let j = 0;       for (; i < str.length && j < w.length && w[j] === str[i];) {          let lenS = 1;          let lenW = 1;          for (; i+lenS < str.length && str[i+lenS] === str[i]; lenS++);          for (; j+lenW < w.length && w[j+lenW] === w[j]; lenW++);          if (lenS < lenW || lenS > lenW && lenS < 3) break;          i += lenS;          j += lenW;       }       if (i === str.length && j === w.length) {          count++;       }    }    return count; } console.log(extraWords(str, words));

আউটপুট

কনসোলে আউটপুট হবে:

1
  1. জাভাস্ক্রিপ্টে ২-কি বোর্ড সমস্যা (2 Key Keyboard Problem)

  2. জাভাস্ক্রিপ্টে মিটিং রুমস ২ (Meeting Rooms 2) সমস্যা সমাধান

  3. জাভাস্ক্রিপ্টে কলা বিতরণ সমস্যা (Distributing Bananas)

  4. জাভাস্ক্রিপ্টে স্ট্রিং-এ থাকা শব্দগুলো উল্টো করা