समस्या
हमें एक जावास्क्रिप्ट फ़ंक्शन लिखने की आवश्यकता है जो एक स्ट्रिंग, str को पहले और एकमात्र तर्क के रूप में लेता है।
हमारे फ़ंक्शन का उद्देश्य इस स्ट्रिंग को अधिक से अधिक भागों में विभाजित करना है ताकि प्रत्येक अक्षर अधिक से अधिक एक भाग में दिखाई दे, और इन भागों के आकार का प्रतिनिधित्व करने वाले पूर्णांकों की एक सरणी लौटाए।
उदाहरण के लिए, यदि फ़ंक्शन का इनपुट है
इनपुट
const str = "ababcbacadefegdehijhklij";
आउटपुट
const output = [9, 7, 8];
आउटपुट स्पष्टीकरण
विभाजन "अबबबका", "डिफगडे", "हिज्हक्लिज" है। यह एक विभाजन है ताकि प्रत्येक अक्षर अधिक से अधिक एक भाग में दिखाई दे। "ababcbacadefegde", "hijhklij" जैसा विभाजन गलत है, क्योंकि यह स्ट्रिंग str को कम भागों में विभाजित करता है।
उदाहरण
निम्नलिखित कोड है -
const str = "ababcbacadefegdehijhklij"; const splitStrings = (str = '') => { const res = [] const map = {} for (let i = 0; i < str.length; i++) { map[str[i]] = i } let start = 0 while (start <= str.length - 1) { let end = map[str[start]] for (let i = start + 1; i < end; i++) { const currentEnd = map[str[i]] if (currentEnd > end) { end = currentEnd } } res.push(end - start + 1) start = end + 1 } return res }; console.log(splitStrings(str));
आउटपुट
[ 9, 7, 8 ]