Transcript for:
Using Heaps for String Manipulation

हेलो एवरीवन वेलकम टू माय चैनल कोड सरी विथ माइक तो आज अपने हीप के प्लेलिस्ट का वीडियो नंबर 17 करने जा रहे हैं लीड कोड नंबर 3170 मीडियम मार्क्ड है और क्वेश्चन काफी सिंपल है अगर देखो देखा जाए तो एक दो चीजें बस आपको ध्यान देनी है कॉर्नर केसेस पर ध्यान देने फिर यह प्रॉब्लम आपको बन जाएगा ठीक है तो बेसिकली जो एग्जांपल दे रखे हैं उस एग्जांपल से ही आप फिगर आउट कर लोगे आधा से ज्यादा कि क्या अप्रोच इसमें लगाना चाहिए यू आर गिवन अ स्ट्रिंग एस इट मे कंटेन एनी नंबर ऑफ ए कैरेक्टर आपको जो स्ट्रिंग एस दे रखा होगा उसमें एस्टस कैरेक्टर हो सकता है एनी नंबर ऑफ टाइम्स ओके र टास्क इ टू रिमूव ऑल द एस्टस कैरेक्टर सारे एस्टिक कैरेक्टर को रिमूव करना है लेकिन जब भी आप किसी भी एसिक कैरेक्टर को रिमूव करोगे तो आपको क्या करना है पहले तो डिलीट द लेफ्ट मोस्ट एसिक कैरेक्टर एंड द स्मॉलेट नॉन एस्टस कैरेक्टर टू इट्स लेफ्ट जैसे यहां पर देखो ये ए दिखा आपको इसके जैसे ही आपको आप इसको रिमूव करोगे इसके लेफ्ट मोस्ट में स्मल नॉन एस्टस कैरेक्टर कौन सा दिख रहा है ए दिख रहा है मुझे है ना नॉन एस्ट और स्मालेस्ट कैरेक्टर कौन दिख रहा है ए दिख रहा है तो आपको ए को डिलीट करना तो इसने इस ए को डिलीट किया तो हमारा आंसर ए बी आ गया ठीक है इफ देर आर सेवरल स्मले कैरेक्टर जैसे देख रहे यहां पर सेवरल स्मले कलेक्टर है एक ए यहां पर भी है यहां पर भी है यहां पर भी है तो आप किसी एक को भी डिलीट कर सकते हो यू कैन डिलीट एनी वन ऑफ देम रिटर्न द लेक्सिक ग्राफिकली स्मालेस्ट रिजल्टेंट स्ट्रिंग आफ्टर रिमूवल रिमूविंग ऑल ए कैरेक्टर्स ठीक है तो अगर आप यहां पर ध्यान दो यहां पर मैं इटरेट कर रहा था मुझे यहां पर एस्ट्रिक्स दिखा तो मुझे करना क्या है एस के लेफ्ट साइड में यानी कि इस साइड में स्मॉलेट कैरेक्टर जो भी है मुझे डिलीट करना है तो देखो यहां पर मल्टीपल स्मॉलेट कैरेक्टर है है ना स्मले कक्टर कौन सा है ए है ना लेकिन वो मल्टीपल टाइम्स है यहां पर भी है यहां पर भी है यहां पर भी है तो क्वेश्चन में तो दे रखा है कि किसी को भी डिलीट कर सकता हो यू कैन डिलीट एनी वन ऑफ देम बट एक्चुअली में ये कंफ्यूज करने के लिए था आईडियली आपको डिलीट थोड़ा स्टली करना पड़ेगा ताकि आपको लेक्सिक ग्राफिकली स्मालेस्ट वर्ड मिले ठीक है जैसे मान लेते हैं यहां पर आपके पास तीन ऑप्शन है या तो आप इसको डिलीट करते ए ए बी ए है इसको डिलीट करते या तो आप ए ए बी ए में इसको डिलीट करते या तो आप ए ए बी ए में इसको डिलीट करते हैं तो देखो डिलीट करने के बाद सब में कौन-कौन सा स्ट्रिंग मिल रहा है इसमें मिलता है ए बी ए इसमें मिल रहा है ए बी ए इससे मिल रहा है ए ए बी तो तीनों में लेक्स स्मालेस्ट कौन है ये है ठीक है और यह मुझे कब मिला जब मैंने राइट मोस्ट a को डिलीट मारा है ना राइट मोस्ट ए को ठीक है तो ओबवियस सी बात है आप सबसे अ जो सबसे स्मॉलेट कैरेक्टर है उसको आप स्टार्टिंग में रखना चाहोगे राइट लेफ्ट लेफ्ट मोस्ट साइड में रखना चाहोगे तभी तो आपको लेक्सिक ग्राफिकली स्मॉलेट वर्ड मिल पाएगा तो बेस्ट आप यह कर सकते हो कि जो भी स्मॉलेट कैरेक्टर है जैसे यहां पर स्मॉलेट कैरेक्टर ए दिखा मुझे सेकंड स्मॉलेट ब है बट अभी सेकंड स्मॉलेट मैं नहीं देख रहा हूं क्योंकि मुझे पास एक ही एस्क है अभी ठीक है फर्स्ट स्मालेस्ट जो भी मुझे दिख रहा है तो मैं उसमें से डिलीट उसको करूंगा जो राइट मोस्ट में प्रेजेंट है जैसे मैंने ए को डिलीट मारा ठीक है ताकि लेफ्ट मोस्ट में ए प्रेजेंट रहे स्मले कैरेक्टर ताकि उससे फायदा क्या होगा मुझे लेक्सिक ग्राफ स्मले वर्ड मिल जाएगा ठीक है इसीलिए यहां पर दिमाग लगाकर इसको डिलीट किया गया है तो देखो ए ए बी मिल गया आपको ओके एक और एग्जांपल देखते हैं ई एडी एस्क है तो जैसे ही मुझे एस्टस दिखा मैं लेफ्ट साइड गया मैंने ढूंढा सबसे छोटा कैरेक्टर कौन सा है सबसे छोटा कैरेक्टर ए दिख रहा है मुझे और इसके अलावा यहां पर कोई और ए है भी नहीं तो मैंने बस ए को डिलीट मारा ईडी मेरा आंसर है यहां तक क्लियर है तो देखते हैं इसका थट प्रोसेस क्या होगा बहुत सिंपल सा थॉट प्रोसेस से हम चलेंगे एकदम बिगिनिंग बिगनर लेवल से जैसे यहां पर देखो आप यहां पर हो ये एस्क है नहीं यहां पर हो एस्टिक्स नहीं है यहां पर आए यहां पर आए यहां पर आए तो एस्टिक्स मिला तो मैंने आपको क्या बोला था कि आईडियली आपको पता होना चाहिए कि आपके लेफ्ट साइड में स्मॉलेट कैरेक्टर कौन है तो एक तरीका तो ये है कि ब्रूट फोर्स तरीका ये है कि आप इससे लेफ्ट साइड में जाओ और सबसे पहला स्मॉलेट कैरेक्टर जो है उसी को डिलीट कर दो बट आपको पता भी होना चाहिए ना कि स्मॉलेट कैरेक्टर कौन है है ना अभी तक तो आपको पता ही नहीं है तो आप बार-बार ऐसे इटरेट करके जब जब आपको एस्ट रिस्क मिलेगा तब तक आप लेफ्ट साइड इटरेट मारोगे तो वो तो ब्रूट फोर्स सॉल्यूशन हो जाएगा वो एक्सेप्ट भी नहीं होगा आपका है ना और वो ब्रूट फोर्स सॉल्यूशन एक्सपेक्ट भी नहीं करेगा क्योंकि अच्छा सॉल्यूशन नहीं होगा वो कंस्ट्रेंट भी हाई है आपका तो एक्सेप्ट नहीं होगा है ना ल ही आ जाएगा तो आईडियली हमें हमें क्या करना चाहिए कि जब हम लेफ्ट टू राइट ट्रैवर्सल मार रहे हैं तो आपने जो जो स्मॉलेट कैरेक्टर देखे हैं उसको स्टोर कर लो कहीं पर ठीक है तो जैसे मान के चलते हैं आप यहां पर थे आपने देखा कि यह a है तो स्मले कैरेक्टर अभी आपको यही दिखा है तो आपने a को स्टोर कर लिया उसके बाद जब आप आगे बढ़े यहां पर तो फिर से a दिखा तो यह भी स्मॉलेट कैरेक्टर है तो आपने a को डाल दिया फिर यहां पर एक और दिखा तो यह स्मॉलेट कैरेक्टर तो नहीं है बट सेकंड स्मॉलेट कैरेक्टर है हो सकता है जब स्मॉलेट कैरेक्टर सारे के सारे डिलीट हो जाए तो उसके बाद का स्मॉलेट कैरेक्टर ये b होगा राइट है ना इसीलिए आपको इसको भी स्टोर करना पड़ेगा लेकिन आपको इस तरह स्टोर करना पड़ेगा कि ये a के बाद आए राइट तो यहां इधर मैं b को स्टोर करूंगा है ना ताकि स्मॉलेट कैरेक्टर a ये डिलीट होगा उसके बाद नेक्स्ट मॉलेस्ट कैरेक्टर ये खुद a डिलीट होगा उसके बाद नेक्स्ट स्ले कैरेक्टर b आएगा ना इसीलिए देखो b को मैंने पीछे रखा है यहां पर उसके बाद i जब मेरा यहां पर आया तो फिर से मुझे एक a दिखा अब देखो मुझे एस्क जब मिल रहा है यहां पर तो मैं क्या करूंगा सबसे स्मॉलेट कक्टर को डिलीट कर मारूंगा तो मैं इसको डिलीट मारूंगा a को डिलीट मारूंगा ना ठीक है यहां तक क्लियर हो गया तो आईडियली अब स्मले कैरेक्टर अब अब देखो अब जैसे ही ए दिखा तो आप डिलीट किसको करोगे स्मालेस्ट कैरेक्टर को जो कि फ्रंट में है आपका तो कौन सा डेटा स्ट्रक्चर आपको स्टोर करना चाहिए जो आपको ओवन टाइम में स्मॉलेट कैरेक्टर दे दे बेस्ट डाटा स्ट्रक्चर है हीप है ना स्मले कैरेक्टर चाहिए या तो देखो आपको या तो लार्जेस्ट एलिमेंट या तो स्मले एलिमेंट अगर आपको चाहिए होता है ओवन टाइम में तो हमेशा हीप के बारे में सोचा करो है ना यहां से फिगर आउट हमने किया कि अच्छा यह हीप का प्रॉब्लम हो सकता है ठीक है तो अब हम क्या करेंगे हीप का यूज करके देखते हैं कैसे इस प्रॉब्लम को हम सॉल्व कर सकते हैं ओके अब देखो ध्यान देना आई यहां पर है मैंने देखा ए है तो मैंने हीप में a को डाल दिया ठीक है फिर आ ये मिन हीप है मेरा फिर ए को यहां डाला फिर आई यहां पर आया तो ये बी है तो ओबवियस सी बात है बी बड़ा है तो नीचे आ जाएगा ये मिन हीप है तो छोटे एलिमेंट्स ऊपर होंगे फिर यहां पर ए है ये ए यहां पर आ गया ठीक है और फिर आ यहां पर आया तो मैंने देखा एस्क है तो मैं क्या करूंगा कि मैं एस्क हैना तो मैं सबसे स्मॉलेट एलिमेंट को डिलीट करने की कोशिश करूंगा तो ये मिन हीप है तो टॉप में सबसे स्मॉलेट होगा तो मैं पॉप कर दूंगा इसको तो ये ए पॉप हो गया अब आ मेरा आगे तो आउट ऑफ बाउंड हो गया मैं मिन हीप से सारे कैरेक्टर्स निकाल लूंगा a ए बी अब देखो यही मेरा आंसर भी था है ना ए ए बी ठीक है यहां तक क्लियर है तो क्या ये ऑप्टिमल सॉल्यूशन है देखो ये मैंने सबसे बिगनर लेवल का थॉट प्रोसेस समझाया आपको क्या ये करेक्ट सलूशन है आंसर तो करेक्ट आ रहा है बट एक एक और एग्जांपल देख लेते हैं यह वाला एग्जांपल ठीक है देखते हैं कि हमारा अप्रोच सही है कि नहीं अब देखो यहां पर ध्यान दो यह वाला एग्जांपल ये मैंने खुद से बनाया एग्जांपल ठीक है देखते हैं सेम तरीके से अगर सॉल्व करेंगे तो बनता है कि नहीं आ यहां पर है मैंने e को यहां डाल दिया अभी स्मले मेरे लिए यही है ठीक है अब मेरा आ यहां पर आया अभी ये ए है तो मेरे लिए नेक्स्ट स्मले अभी ये नहीं अभी मेरा स्मले एस्ट ये हो गया टॉप पर ये जाएगा मेन ही पे ठीक है अब आई ये आ गया जोडी है ना तो ओबवियस है ए ऊपर आएगा उसके बाद स्मॉलेट कौन है डी है उसके बाद स्मॉलेट कौन है ई है ठीक है अल्फाबेट में ऐसे ही होता है ना ए बी सीडीई मतलब सबसे स्मालेस्ट ए होता है उसके बाद डी होता है उसके बाद य होता है है ना तो इसके बाद आई मेरा कहां आया आई मेरा एस्टस पर आ गया तो मैं सबसे पहले सबसे स्मले को डिलीट करना चाहूंगा तो मैंने ए को डिलीट मार दिया ठीक है अब देखते हैं मैंने मीन हीप से निकाला सारे कैरेक्टर को तो मेरा क्या आंसर आता है डी मेरा आंसर आ रहा है क्या करेक्ट आंसर है नहीं करेक्ट आंसर नहीं है आपका आंसर ईडी होना चाहिए था क्योंकि देखो ये आपने जब ए को डिलीट मारा तो ऑर्डर यह है ना पहले ई उसके बाद डी आपने ऑर्डर ही चेंज कर दिया यहां पर ठीक है इंडेक्स ही चेंज कर दिया आंसर हमारा क्या था ईडी था हमारा आंसर ठीक है तो मीन हीप की वजह से एक प्रॉब्लम तो हो रही है कि हमारा इंडेक्स चेंज हो जा रहा है मतलब इंडेक्स लॉस्ट हो जा रहा है ना पहले देखो आपने डी को लिख दिया ठीक है तो यह गलत आंसर हो गया तो इसको फिक्स करने का एक तरीका क्या हो सकता है कि भाई आप इंडेक्स स्टोर कर लो यहां पर यहां पर इंडेक्स स्टोर कर लो जैसे इसको दोबारा से करते हैं दोबारा से इसको सॉल्व करेंगे और हम इसको यहां पर इंडेक्स स्टोर कर लेंगे तो इससे देखो हमारा फायदा क्या होगा इंडेक्स स्टोर करने से कि इंडेक्स हमारा लॉस्ट नहीं होगा मान लेते हैं आ यहां पर है मुझे सबसे स्मालेस्ट कक्टर अभी यही दिख रहा है तो मैंने डाल दिया e है इसका इंडेक्स जीरो था ठीक है उसके बाद आ यहां पर आया तो मुझे ए दिखा सबसे स्मॉलेट अभी मुझे ये दिख रहा है a इसका इंडेक्स वन है ठीक है उसके बाद आ जब यहां पर आया तो तो इंडेक्स देखो d है तो अब वस है ये a1 ऊपर चला जाएगा ठीक है और यहां पर डी है इसका इंडेक्स नंबर टू था ठीक है यहां तक क्लियर है तो स्मॉलेट कैरेक्टर के हिसाब से शॉर्ट तो हो गया देखो ए उसके बाद डी उसके बाद ई बट इंडेक्स अभी भी मेरे पास है है ना स्टोर्ड है मेरे पास इंडेक्स अब आई देखो जब यहां पर आएगा तो मैं सबसे टॉप वाले को डिलीट मारूंगा तो मैंने इसको डिलीट मार दिया ठीक है यहां तक क्लियर है अब देखो जिसको मैंने डिलीट मारा है ना मैंने किसको डिलीट मारा है एकवन को डिलीट मारा है इसका मतलब क्या हुआ इंडेक्स वन वाला एलिमेंट डिलीट हो चुका है तो मैं क्या करूंगा इंडेक्स नंबर वन पर जाऊंगा और यहां पर ना डिलीट करने के लिए सिंस ये डिलीट हो चुका तो मैं इसको कुछ भी मार्क कर दूंगा मतलब इसी को एस्क बना देता हूं इसको एस्टिक बना देता हूं इसका मतलब यह होगा कि मैंने इस ए वाले स्ट्रिंग में इंडेक्स नंबर वन वाले करेक्टर को डिलीट कर दिया था ठीक है क्योंकि वो मेरा स्मॉलेट कैरेक्टर था अब आ मेरा आउट ऑफ बाउंड हुआ ठीक है तो मैं ही से आंसर नहीं निकालू अब ठीक है मैं इस एस से ही निकाल लूंगा आंसर देखो एस पर ध्यान दो एस में सबसे पहला कैरेक्टर कौन है ई है एस पर दूसरा कैरेक्टर कौन है एस्क है याद करो मैंने की जगह एस्क लिख दिया था तो मैं इसको लिखूंगा ही नहीं है ना उसके बाद नेक्स्ट कैरेक्टर कौन है डी है तो डी हो गया उसके बाद नेक्स्ट कक्टर कौन है एस्ट तो मैं लिखूंगा ही नहीं उसको तो मेरा आंसर देखो एडी आ गया ठीक है यहां तक क्लियर है तो यहां पर हमने मिन हीप का दो तरीके से इस्तेमाल कि किया पहला तरीका पहला फायदा क्या हुआ कि स्मॉलेट कैरेक्टर हम आसानी से ढूंढ पा रहे हैं ओवन टाइम में ठीक है बट स्मले कैरेक्टर ढूंढने के चक्कर में इंडेक्स लॉस्ट हो जा रहा था तो हमने क्या किया स्टोर इंडेक्स आल्सो हमने इंडेक्स को स्टोर भी कर लिया ठीक है इंडेक्स को स्टोर कर लिया तो इंडेक्स को जब स्टोर किया तो जो बंदा डिलीट हुआ है ना उस इंडेक्स पर जाके एस्क मार्क कर दिया ठीक है दोबारा से फिर हमने ए प इटरेट करके एस्टस के अलावा जितने कैरेक्टर्स बचे उसको हमना हमने रिजल्ट में डाल दिया यह मेरा रिजल्ट हो गया ठीक है तो देखते यह हर एग्जांपल में यह चीज काम करेगा कि नहीं है ना दोबारा से एक और एग्जांपल में सेम चीज ड्राई रन करते हैं जितना ड्राय रन करोगे उतना क्लेरिटी आएगा ओके तो देखो एक और ड्राय रन करते हैं बट यह वाला ड्राय रन बहुत इंपॉर्टेंट होने वाला है यह हमारा पहला एग्जांपल है उसी को मैं ड्राय रन कर रहा हूं दोबारा ठीक है ए ए बी ये मेरा मेन हीप है ठीक है सबसे पहले मुझे यह ए दिखा मैंने क्या किया ए को यहां पर डाल दिया इंडेक्स नंबर जीरो का है ये राइट कैरेक्टर इंड दोनों डल रहा है याद रखना ये मिन हीप है उसके बाद आई यहां पर है दोबारा एक ए आया ठीक है तो देखना ए यहां पर है इंडेक्स नंबर वन पर है अब देखो मिन हीप है ना तो मिन हीप क्या करेगा जो एलिमेंट सबसे छोटा होता है उसको टॉप पर रखता है तो देखो इसको और इसको जब वह कंपेयर करेगा वह देखेगा कि चलो पहला कैरेक्टर तो इक्वल है बट दूसरा कैरेक्टर देखा जाए तो दूसरा एलिमेंट देखा जाए तो य य वन है और ये जीरो है तो मिन हीप क्या करेगा जो सबसे छोटा है उसको टॉप पर रखेगा तो पहला एलिमेंट तो इक्वल हो गया तो दूसरा एलिमेंट के हिसाब से वो सर्टिंग कर देगा इसकी तो वो क्या करेगा टॉप पर a0 को डाल देगा और यहां पर a1 को डाल देगा क्योंकि मिन हीप के हिसाब से शर्ट स्मॉलेट एलिमेंट ये होगा भले पहला एलिमेंट इक्वल है तो वो दूसरे एलिमेंट के हिसाब से शॉर्ट कर देगा ठीक है ओके अब आ यहां पर आया अब मेरा बी है तो ओबवियस है बी तो ए से तो बड़ा है तो बी नी आ जाएगा स्मॉलेट एलिमेंट ऊपर आना चाहिए इंडेक्स नंबर टू पर है उसके बाद आ यहां पर है ये इंडेक्स नंबर थ्री पर है राइट तो फिर यह क्या करेगा इंडेक्स नंबर थ्री है तो उसको वह नीचे डाल देगा इंडेक्स नंबर थ्री ये बी और ये टू यहां तक क्लियर है उसके बाद आ जब यहां पर आएगा तो मैं देखूंगा कि अच्छा एस्क है तो मैं टॉप वाले एलिमेंट को उठाऊंगा इसको और इसको पॉप कर दूंगा a 0 को मैंने पॉप कर दिया तो मैं जी इंडेक्स प जाके इसको एस्क बना दूंगा ताकि मैं इसको ना लिखूं ठीक है फिर आई जब आउट ऑफ बाउंड होगा तो मैं एस कैरेक्टर पर जा एस स्ट्रिंग पर जाऊंगा और सबको लिखना स्टार्ट करूंगा एस्क वाले को छोड़कर तो मुझे मिलेगा ए बी ए जबकि ये गलत आंसर है राइट है ना और ऐसा क्यों हुआ क्योंकि देखो हमने डिलीट किसको किया जीरो थ इंडेक्स वाले को डिलीट कर दिया जबक हमको हमें किसको डिलीट करना चाहिए था जो सबसे राइट मोस्ट इंडेक्स में जो स्मॉलेट कैरेक्टर है ठीक है तो इन ए में मुझे किसको किस ए को पहले डिलीट करना चाहिए था यह भी ए है यह भी ए है ये भी है किसको डिलीट करना चाहिए था जिसका इंडेक्स सबसे बड़ा हो मतलब जो राइट मोस्ट में प्रेजेंट हो यह मैंने आपको एकदम स्टार्टिंग में ही बताया था ठीक है और यह चीज जरूरी नहीं कि आप स्टार्टिंग में फिगर आउट कर पाओ गलती करने के बाद ही फिगर आउट कर मतलब बहुत लोग गलती करने के बाद फिगर आउट कर पाएंगे ठीक है तो यह यहां पर एक गलती हमें मिली कि अच्छा यह गलत आंसर आ रहा है तो यहां से पता चला कि अच्छा इंडेक्स के हिसाब से ऐसे सर्टिंग हो चुकी होगी विदन मिन हीप तो मिन हीप जो सर्टिंग करता है उसको हम कस्टमाइज कर सकते हैं ठीक है अब आपको याद होगा जब हम प्रायोरिटी क डिफाइन करते हैं प्रायोरिटी क्य इंट कॉमा वेक्टर ऑफ इंट ठीक है तो यह क्या डिफाइन करता है यह डिफाइन करता है मैक्स हीप अगर हमें इसको मिन हीप बनाना होता है तो कैसे लिखते हैं ऐसे लिखते हैं ना मिन हीप को बस यहां पर अपना एक आप कंपैरेटर फंक्शन भेज देते हो कि आप सर्टिंग करना मन मतलब हीप के अंदर मेरे हिसाब से तो य ग्रेटर ंट अगर लिख दोगे तो यह मिन हीप हो जाएगा अगर आप इसको कस्टमाइज तरीके से अगर आप इसको सॉर्ट करना चाहते हो हीप के अंदर तो ग्रेटर इंट के जगह आप अपना एक कंपैरेटर फंक्शन भेज सकते हो खुद का है ना तो वह हम लोग देखेंगे कैसे करना है बट हमें यह तो पता चल गया कि जो कंपैरेटर फंक्शन हम लिखेंगे उसकी मदद से हम हीप को यह बोलेंगे कि भाई अगर पहला कैरेक्टर इक्वल है जैसे यहां पर देखो अगर पहला कैरेक्टर इक्वल है तो इंडेक्स जिसका बड़ा होगा ना वह टॉप पर आना चाहिए जैसे इंडेक्स नंबर थ टॉप पर आना चाहिए था और अगर पहला कैरेक्टर इक्वल नहीं है तो यस बात है जो जो कैरेक्टर स्मले है उसको टॉप पर रखना ठीक है तो मैंने यहां पर क्या हमने क्या डिसाइड किया कि अगर स्मॉलेट कैरेक्टर है तो वह टॉप पर रहेगा ठीक है और अगर इक्वल है स्मले कैरेक्टर ठीक है देन अ लार्जेस्ट इंडेक्स लार्जेस्ट इंडेक्स एट टॉप है ना तो लार्जेस्ट इंडेक्स जो है वो टॉप पर रहेगा यहां तक क्लियर है तो अगर उस हिसाब से चलेंगे तो देखो हमारा आंसर बहुत इजली आ जाएगा यहां पर फिर से ड्राई रन करते हैं यहां पर अगर लार्जेस्ट इंडेक्स वाला टॉप पर रहता तो क्या होता यहां पर a0 यहां पर आ जाता फिर a1 यहां पर आता फिर a3 यहां पर आता राइट तो इसके बाद हम क्या करते जैसे ही हमें एस्टस दिखता तो हम सबसे पहले इसको डिलीट मारते टॉप वाले को a 3 को तो हम क्या करते हैं थर्ड इंडेक्स पर जाके वहां एस्टस डाल देते हैं है ना थर्ड इंडेक्स पर जाते हैं यह मेरा थर्ड इंडेक्स है इंडेक्स नंबर 0 1 2 3 यहां पर जाके एस्टस डाल देते हैं ओके उसके बाद आ मेरा आउट ऑफ बाउंड होता फिर मैं वापस जाता इस अपने ए स्ट्रिंग पर फिर एकएक कैरेक्टर को लिखना स्टार्ट करता है पहला कैरेक्टर ए है दूसरा कैरेक्टर ए है तीसरा कक्ट कक्टर बी है चौथा कैरेक्टर एस्क है तो मैं इसको नहीं लिखूंगा इस पांचवा कक्टर एस्ट इसको मैं नहीं लिखूंगा तो देखो मेरा आंसर आ गया ए बी यही मेरा करेक्ट आंसर था राइट यह देखो ए ए भी मेरा करेक्ट आंसर था तो हमें एक चीज समझ में आ गई इससे कि भाई स्मले कैरेक्टर है तो वो टॉप पर रहेगा वो हम मिन हीप से संभाल लेंगे लेकिन मिन हीप में हमें इंडेक्स भी डालना पड़ेगा और इंडेक्स डालेंगे तो ऐसा डालेंगे कि भाई जो जो इक्वल अगर स्मालेस्ट कैरेक्टर इक्वल है तो लार्जेस्ट इंडेक्स वाला टॉप पर आना चाहिए तो उसके लिए हमें कस्टमाइज्ड मिन हीप लिखना पड़ेगा है ना और कस्टमाइज करने के लिए कंपैरेटर अपना पास कर देंगे मिन हीप को और वो कंपैरेटर मैंने क्या बोला कैसा होगा और याद रखना कि मिन हीप में कंपैरेटर जब भी लिखते हैं तो स्ट्रक्ट में पास करते हैं उसको स्ट्रक्ट कॉम्प ठीक है और मैं आपको अपना एक गेट हब में रिपोजिटरी भी दिखा दूंगा जहां पर मैंने ये सारी चीजें बता रखी है कि किस तरह आप कंपैरेटर डिफाइन करते हो मेन हीप के लिए अनर्ग मैप के लिए ऑर्डर के लिए ठीक है इसके बाद यहां पर आप लिखते हो बोलियन ऑपरेटर एक्चुअली में ऑपरेटर ओवरलोडिंग है य फिर आप यहां पर देखो याद करो प्रायरिटी क्य में क्या है प्रायरिटी ऑफ पेर है ना य तो दो पेयर के बीच में कंपैरिजन होगा ठीक है तो ऑटो ऑटो ना लिख के यहां पर आप लिख सकते हो कि इट इज अ पेयर ऑफ कैरेक्टर कॉमा इंट एंड पेयर वन आएगा उसके बाद दूसरा पेयर आएगा पेयर कैरेक्टर कॉमा इंट एंड p2 दूसरा पेयर आएगा इन दोनों के बीच में कंपैरिजन होगा अभी राइट तो जब कंपैरिजन होगा तो मैंने आपको बताया था कैसे कंपैरिजन करेंगे कि इफ अगर पेयर का पहला एलिमेंट जो है मतलब जो कैरेक्टर है अगर वो बराबर निकल गया दूसरे के कैरेक्टर के बराबर जैसे यहां पर देखो इन दोनों पेयर को अगर ध्यान दो दोनों का पहला कैरेक्टर तो सेम है पहला एलिमेंट ए ए है बट दूसरा वाला इंडेक्स है ठीक है तो उस केस में मैंने क्या बोला था कि जो लार्जेस्ट इंडेक्स है वह पहले आना चाहिए तो हम कैसे करेंगे रिटर्न पव डॉट इसका इंडेक्स क्या है सेकंड में है पव डट सेकंड और दूसरे का इंडेक्स पड सेकंड ठीक है तो हमने अभी ऊपर क्या देखा था कि देखो यहां पर दो ए है ना तो जिसका इंडेक्स पहले है मतलब बड़ा है वह बाद में आना चाहिए यह रहा टॉप पर आना चाहिए और जिसका इंडेक्स छोटा है वो नीचे आना चाहिए पहले आना चाहिए ठीक है तो यहां पर मान लेते हैं यह अगर इसका इंडेक्स जीरो है और इसका इंडेक्स थ्री है तो ओबवियस बात है रो वाला पहले आना चाहिए a 0 उसके बाद a 3 वाला आना चाहिए है ना ये रहा ठीक है यहां तक क्लियर है और अगर ऐसा नहीं है तब तो बहुत सिंपल है जो कैरेक्टर छोटा है वो पहले आना चाहिए तो रिटर्न p1 फर्स्ट इज ग्रेटर दन p2 डॉट फर्स्ट जो कैरेक्टर छोटा होगा व सबसे पहले आएगा मान लेते हैं कि यह मेरा ए है और यह मेरा e है ठीक है तो यस है इ ग्रेटर है क्या नहीं फॉल्स हो जाएगा तो फॉल्स का मतलब क्या हुआ कि ऑर्डर में ई पहले आएगा मतलब य जो हीप बनता है ना तो ऑर्डर में ई पहले आएगा उसके बाद ए आएगा तो देखो ए ऑटोमेटिक टॉप पर आ जाएगा यही हम चाहते थे ठीक है इसलिए य पर देख ग्रेटर देन का साइन लगाया हमने यहां तक क्लियर हो गया तो बस हम ने यह कंपैरेटर ही मेन पार्ट था इस प्रॉब्लम का जिसको ये कंपैरेटर लिखना आता था वो बहुत इजली इस प्रॉब्लम को सॉल्व कर सकते थे ठीक है तो आई होप ये ड्राय रन भी क्लियर हो चुका होगा जल्दी से कोड करते हैं और उसमें टाइम और स्पेस कॉम्प्लेक्टेड करते हैं सबसे पहले n = s ड लेंथ हमने निकाल लिया है और हम प्रायोरिटी क डिफाइन कैसे करते हैं प्रायोरिटी क इंट वेक्टर ऑफ इंट कंपैरेटर डालते हैं और p क ठीक है बट सिंस हमारा प्रायोरिटी क में इंट नहीं होगा एक पेयर होगा ना तो मैं पहले य डिफाइन कर देता हूं टाइप डेफ पेयर ऑफ कैरेक्टर होगा और कौन से इंडेक्स में है वो होगा पेयर ऑफ कैर कॉमा इंट इसको प से डिफाइन कर लेते हैं ताकि मैं बारबार लिखना ना पड़े तो प्रायोरिटी क में हमारा सिर्फ इंट ना हो इंट नहीं होगा इट विल बी अ प्रा क ऑफ प तो वेक्टर ऑफ प होगा यहां पर और यहां पर कंपैरेटर मैंने पास कर दिया है और कंपैरेटर में पहले डिफाइन कर देता हूं ना स्ट्रक्ट कंपैरेटर ठीक है यहां पर बोलियन ऑपरेटर यहां पर प एंड पहला पेयर आएगा प एंड दूसरा पेयर आएगा और हमें यहां कंपेयर क्या करना है कि अगर पेयर का पहला एलिमेंट बराबर हो जाए ठीक है तो हमें क्या करना है रिटर्न p1 सेकंड इ लेसन p2 सेकंड और अगर ऐसा नहीं है तब तो सिंपल है कि जो कैरेक्टर पहले छोटा होगा वो पहले आना चाहिए ठीक है p11 ग्र p2 फर्स्ट ठीक है यहां तक क्लियर हो गया ओके इसके बाद तो बहुत सिंपल है यहां पर हमने कंपैरेटर डिफाइन कर दिया फॉर इंट आ = 0 आ इ ले n आ प् प्स ठीक है अगर मेरा आई कैरेक्टर इ इक्वल टू इक्वल टू एस्क नहीं हुआ ठीक है अगर ऐसा है कि वो एस के बराबर नहीं है तो हम तो सिंपली उसको पुश कर देंगे ठीक है s ऑफ आ कॉमा जो भी उसका इंडेक्स था और अगर ऐसा है नहीं है तो इंडेक्स निकाल लेते हैं जिसको हमें डिलीट करना है प कड टॉप डॉट सेकंड वाले में इंडेक्स होगा प कड पॉप कर दिया हमने इंडेक्स क्यों निकाला ताकि एस ऑफ आईडी एक में हम ए डाल सके ठीक है यहां तक क्लियर है और जब बाहर निकलेंगे तो बस एक स्ट्रिंग रिजल्ट बना लो फॉर इंट आ इ 0 आले ए आ प्स प्स इ ए आई इ नॉट इक्वल टू एस्क तो रिजल्ट डॉट पुश अंडरस्कोर बैक में एस आ को डाल दो और अगर एस तो हमको उसको नहीं लेना मतलब वो डिलीटेड है ठीक है रिजल्ट यहां पर सबमिट कर देते हैं लेट्स सी इर एबल टू पास एग्जांपल टेस्ट केसेस इनडीड यस पहले टाइम और स्पेस कमिटी यहां पर देख लो यहां पर हम सारे कैरेक्टर पर एक बार विजिट कर रहे हैं तो ए लग रहा है यहां पर ऑ तो लग रहा है लेकिन देखो यहां पर हम पुश भी कर रहे हैं ना सॉरी पुश भी कर रहे हैं और पॉप भी कर रहे हैं जहां पर कितना लगेगा टाइम कॉम्प्लेक्शन l ऑफ n लगेगा n यहां पर क्या है मैक्सिमम अ ये साइज ऑफ़ दी प्रायोरिटी क है ना यहां पर लिख सकते हो लॉग ऑफ साइज ऑफ़ प्रायोरिटी q जिसको मैं वर्स केस में n मान के चल रहा हूं ठीक है तो n l n हमारा टाइम कॉम्प्लेक्शन केस क्या हो गया o ऑफ n l n यानी कि o ऑफ n l n में हमने इसको सॉल्व कर दिया अलग से हमने स्पेस तो लिया है प्रायोरिटी क्यू का ओ ऑफ ए स्पेस लग रहा है हमारा बट अनलॉगइन इज द बेस्ट टाइम कमटी ट वी कैन अचीव आई होप आई वास एबल टू हेल्प सी यू नेक्स्ट वीडियो थैंक यू