कभी-कभी लोग अतिरिक्त भावना दर्शाने के लिए अक्षरों को दोहराते हैं, जैसे "hello" → "heeellooo", "hi" → "hiiii"। इन स्ट्रिंग्स जैसे "heeellooo" में, हमारे पास आसन्न अक्षरों के समूह होते हैं जो सभी समान होते हैं: "h", "eee", "ll", "ooo"।
किसी दी गई स्ट्रिंग S के लिए, एक क्वेरी शब्द स्ट्रेची है यदि इसे विस्तार ऑपरेशन के किसी भी संख्या में अनुप्रयोगों द्वारा S के बराबर बनाया जा सकता है: अक्षरों c से बने एक समूह को चुनें, और समूह में कुछ अक्षर c जोड़ें ताकि समूह का आकार 3 या अधिक हो।
उदाहरण के लिए, "hello" से शुरू करके, हम समूह "o" पर विस्तार करके "hellooo" प्राप्त कर सकते हैं, लेकिन हम "helloo" प्राप्त नहीं कर सकते क्योंकि समूह "oo" का आकार 3 से कम है। 또한, हम "ll" → "lllll" जैसे एक और विस्तार करके "helllllooo" प्राप्त कर सकते हैं। यदि S = "helllllooo", तो क्वेरी शब्द "hello" स्ट्रेची होगा क्योंकि इन दो विस्तार ऑपरेशन्स के कारण: query = "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