इस समस्या में, हमें एक स्ट्रिंग str और Q प्रश्न दिए जाते हैं। प्रत्येक क्वेरी में एक संख्या X होती है। हमारा कार्य क्वेरी को हल करने के लिए एक प्रोग्राम बनाना है जो X-वें सबसे छोटे उप-स्ट्रिंग को लेक्सिकोग्राफ़िक रूप से C++ में उत्तर देगा।
समस्या का विवरण
हमें प्रत्येक क्वेरी के लिए दसवीं लेक्सिकोग्राफ़िक रूप से सबसे छोटी सबस्ट्रिंग खोजने की ज़रूरत है यानी वर्णमाला क्रम सॉर्टिंग के आधार पर हमें दसवीं सबस्ट्रिंग ढूंढनी होगी।
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट :str ="बिंदु"
क्यू =4 क्वेरी ={4, 7, 2, 13}
आउटपुट: एन, ओई, इन, पॉइंट
स्पष्टीकरण
लेक्सिकोग्राफिकल क्रम में str के सभी सबस्ट्रिंग हैं-
मैं, in, int, n, nt, o, oi, oin, oint, p, po, poi, poin, point, t
चौथा उप-स्ट्रिंग - n
सातवीं उप-स्ट्रिंग - ओई
दूसरा उप-स्ट्रिंग - इन
13वीं उप-स्ट्रिंग - बिंदु
समाधान दृष्टिकोण
एक सरल समाधान स्ट्रिंग के सभी संभावित सबस्ट्रिंग उत्पन्न करेगा, उन्हें डेटा संरचना में संग्रहीत करेगा, और फिर उन्हें शब्दावली क्रम यानी वर्णमाला क्रम में क्रमबद्ध करेगा। फिर प्रश्नों में X के लिए, हमें संरचना से संबंधित उप-सरणी को प्रिंट करना होगा।
सबस्ट्रिंग को स्टोर करने के लिए, हम वैक्टर का उपयोग करेंगे।
उदाहरण
#includeनामस्थान का उपयोग कर;वेक्टर<स्ट्रिंग> सबस्ट्रिंग;शून्य find_SortSubstrings(string s) { int len =s.size(); for (int i =0; i आउटपुट
प्रश्न 1:लेक्सिकोग्राफ़िक की दृष्टि से चौथा सबसे छोटा उप-स्ट्रिंग nQuery 2 है:लेक्सिकोग्राफ़िक रूप से 9वीं सबसे छोटी उप-स्ट्रिंग ointQuery 3 है:5वीं सबसे छोटी उप-स्ट्रिंग लेक्सिकोग्राफ़िक रूप से ntQuery 4 है:लेक्सिकोग्राफ़िक रूप से 15वीं सबसे छोटी उप-स्ट्रिंग tहै। पूर्व>