কখনো কখনো লোকজন আবেগ প্রকাশের জন্য অক্ষর রিপিট করে, যেমন "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