Transcript for:
रिकर्सन और संख्या नामकरण तकनीक

हेलो एवेवन वेलकम टो में चैनल कोड सोरी विद माइक तो आज अपने रिकर्शन प्लेज का वीडियो नंबर फोर करने जा रहे हैं लिटको 273 हाड मार्क्ट है बट काफी इजिली इसको हम लोग सॉल्फ कर लेंगे ठीक है देखते हैं इंटीजर टो इंग्लिश वर्ड्स एक नॉन नेगेटिव इंटीजर दे रखा होगा आपको इसको इंग्लिश वर्ड्स रेपरेजेंटेशन में कनवर्ट करके भेजना ह 345 इसी तरह इसको देखो 1 मिलियन 234 थाउजन 567 ओके और नमका लिमिट दे दिया कि जीरो से लेकर टू कबाब 31 माइनेस वन तक जाएगा यह ओके तो देखते हमारा क्या अपरोच होना चाहिए ऐसे प्रॉब्लम में तो देखो सबसे पहले तो एक चीज समझते हैं कि जब भी ऐसे प्रॉब्लम साथ है ठीक है मतलब इस तरह के प्रॉब्लम में पास बना रखे हैं इधर सेमी प्रॉब्लम था देखा जाए तो उसमें लिमिट छोटी थी अ ठीक है, I think वो hacker rank में था या कहीं पर था, तो ये बहुत ही ideal problem है, और अब recursion का, but आपको पता वाना चाहिए कि क्यों ये recursion का ideal problem है, मतलब क्या इसमें मैंने देखा कि मुझे लगता है कि ये recursion के लिए best problem होगा, ठीक है, मैं आपको अभी समझाता हूँ, why recursion, सबसे important question ये है न है तो सबसे पहले देखते हैं कि क्यों रिकर्शन से बनाएंगे इसको बेस्ट तरीका रिकर्शन क्यों है इसका अब एक बात बताओ आप मान के चलते हैं कि यह नाइन है ठीक है यह तो फिर मान के चलते हैं कि 95 नाम का नंबर था और आपने मान के चलते इसको कंवर्ट कर दिया आपको अल्रेडी पता है कि इसको ऐसे मान कर चलते हैं, ठीक है? अब एक बात बताओ, मान कर चलते हैं एक और नमबर आ गया, 995, ओके? अब आप मुझे एक बात बताओ, कि एक और जो यहाँ पर मैंने 9 लगाया है, कौन से position में है?

1's, 10's, 100's position में है, मतलब 995 है, यह 900 है, 9, ठीक है? तो कितना 100 है यह? 900 है, 900 है, तो न? कि इसके बाद जो रिमेइनिंग है यह तो अलड़ी मैंने सॉल्व कर रखा है मैंने बोला तो आपको इसको मैं अलड़ी सॉल्व कर रखा है यह तो बस मैं क्या करूंगा 95 वाले का आंसर मतबह मैं क्या करूंगा बोलेगा कि पर 95 का आंसर अलड़ी निकाल रखा है जाकर निकाल के लिए ठीक है मेरा नेक्स्ट सब प्रॉब्लम होगा यह क्योंकि मैंने इसका तो निकाल लिया कि बाहर है इसकी वजह से 900 तो आ चुका है अ उसके बाद मुझे क्या करना जो निर्मिनिंग सब प्रॉब्लम है मैं बोला कि भाई 95 के लिए मेरे लिए सॉल्व करके ले आना तो 95 का क्या था वैल्यू 95 और यहां पर अपने कर दूंगा 95 ठीक है अब मान कि जाते हैं कि और भी बड़ा नंबर होता 9995 ठीक है तो देखो यहां पर वहीं चीज होता यहां पर देखो तो यह थाउजन्स प्लेस है तो कितना हुआ नाइन कि थाउजेंट वन स्टेंट हंड्रेड थाउजेंट ना तो 9000 हो गया ठीक है उसके बाद देखो रिमेइनिंग प्रॉब्लम कि नाइन 95 है तो मैं बुलेगा भाई इसका प्रॉब्लम सॉल्व करके लेगा नाइन 95 तो यह बुलेगी भाई यह वन स्टेंट हंड्रेड यह तो हंड्रेड प्लेस है तो इसका लिख दिया 900 ठीक है उसके बाद बचा 95 बेगा भाई 95 को प्रॉब्लम के लिए आप ठीक है तो यह तो मुझे पता है 95 अलरेडी तो बस मैंने इसको यहां पेंड किया और इसको यहाँ append किया तो देख रहे हो similar type of problem है similar type of problem है आप बस इसको sub problem में तोड़ के recursion को भेज दे रहे हो कि भाई इसका problem solve करके ले आना और यह further क्या कर रहा है इसको तोड़ दे रहा है बोल रहा है इसका problem solve करके ले आना तो best तरीका है इसको recursion से solve करने का मेरा problem यह था इतना बड़ा problem था मेरा नाइन नेंटी फाइव में इसने फिर इसको फर्डर तोड़ दिया 95 में है ना एंड सो ऑन यहां तक लिया है ओके अब 95 को फर्डर तोड़ेंगे हम लोग क्योंकि ऑफिस यहां पर तो मैंने दिखा दिया कि हां 95 का मैंने ऐसे निकाल दिया है बट इसको भी निकालेंगे अच्छे से है ना कि 95 का भी वैल्यू जो 95 है वह मैंने कैसे लाया होगा इसको भी फर्डर तोड़ों के दूसरों 9 फाइव प्लेस में है टेंस प्लेस में तो यह 90 हो जाएगा 90 उसके बाद बचा है फाइव बचा, तो ये तो unit place है, तो आराम से, unit वाले को तो direct लिख सकतो, फाइव, है न, तो दिखाया तो clear cut बहुत simple सा recursion वाला problem लग रहा है, तो हम इसको recursion से ही solve करेंगे, ओके, अब देखो, मैंने आपको उपर समझाया था न, कि ये अगर मान लेते है 95 है, तो इसको भी further कि यह टेंस वाला प्लेस है ना मतलब नाइनटी है एक्चुली में है ना लिखा होगा उसका रिमेइनिंग सब परम्नी यह 5 है तो 5 के लिए तो डिरेक्टली 5 लिख देंगा ठीक है तो जो इसका मतलब जो यूनिट प्लेस वाला जो नंबर होता है उसको एजटिज लिख देना है मैं 5 है या 4 है जो भी है जैसे जैसे इसको देखो अगर मान लेते है कि 40 ठीक है तो हम लोग करेंगे ना यह इसका तो यूनिट प्लेस वाले का जो हमें लिखना है इंग्लिश वर्ड वह बड़ा स्ट्रेटफॉरवर्ड है उसको डिरेक्टली हम कहीं पर मैप में स्टोर कर लेंगे कि यूनिट प्लेस वाले जो नंबर से फॉर इजांपल 02 नाइन वाले जो नंबर होंगे यूनिट प्लेस में है ना चाहे 99 हुआ या 45 हुआ 67 हुआ ओके तो यूनिट प्लेस में नंबर है 957 21 मान लेता है तो वन एंड सो ऑन उसको हम आराम से लिख सकते हैं ना मैं हम लोग कहीं पर स्टोर कर लेंगे कि भाई अगर वन है तो इसके लिए वन लिखना है हमें अगर टू है तो इसके लिए हमें टू लिखना है अगर थ्री है तो इसके लिए थ्री लिखना है एंड सो ऑन तो जीरो टू नाइन वाला जो नंबर है अच्छा जीरो तो एक स्पेशल केस आ जाएगा मतबह कोई नंबर अगर जीरो है तो इसको प्रेसिटेज ऐसे जीरो लिखे भेज दो ना ठीक है बाकी जो वन टू नाइन है है ना उसको वह अगर वह यूनिट प्लेस में आता है कि अब यह यह फॉर्टी तो यह थोड़ी लिखोगे फॉर्टी जी रोट लिखते हैं लोग इसलिए जी रोट एक अलग केस में लेते हैं अगर जीरो आता है तो अगर नंबर मेरा जीरो है तो आज ऐसे रिटर्न कर देंगे ठीक है और अगर नंबर कुछ ऐसा है मान लेते हैं फॉर्टी या नाइनटी ना है 70 तो इसमें जीरो नहीं डालेंगे यहां पर बस डायरेक्ट देखेंगे 4090 70 एंड सो ठीक है वह देख लेंगे कोड में हैंडल कर लेंगे बट यहां पर मैं बोल रहा हूं कि नंबर इगल्ड जीरो के लिए अलग से हैंडल कर लेंगे कि अगर नंबर अगर जीरो ही है तो डाइट सिर्फ उसके बाद 1 to 9 वाले जो numbers हैं, उसको मैं as it is लिखूंगा, as it is, direct, उसके लिए कोई दिमाग लाने की ज़रूरत नहीं है, ठीक है, अब आती है बारी और भी numbers देखते हैं, और कौन-कौन से numbers हैं, एक और चीज़ अगर आप ध्यान दोगे, तो ये लोग जो number है, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 यह भी थोड़े special से numbers है अगर आप ध्यान दो क्योंकि अगर आप इसको वो वाले logic से लिखोगे ना जैसे माले लेते हैं 12 है यह 1's place है यह 10's place है ठीक है तो 1's place क्या लिखेगे 10 लिखोगे और 2 लिखोगे क्या 10-2 लिखोगे क्या नहीं ना ऐसे थोड़ी बोलते हैं कि यह 10-2 है यह 10-3 है यह 10-4 है ऐसे थोड़ी बोलते हैं इनका special नाम है ना यह 12 है इसका नाम इसका नाम 13 है इसका नाम 14 है इसका नाम 15 है मतलब 10 से लेकर 19 तक वाले numbers के ना भी special naming है हम उसको ऐसे नहीं पढ़ते हैं 10-6, 10-7 ऐसे थोड़ी पढ़ते हैं special नाम है उसका 16, 17, 18 इसके बाद जो numbers होते हैं जैसे माले लेते हैं 20 हो गया या 21 माल लेते हैं या तो 52 माल लेते हैं 33 माल लेते हैं ये common names हैं इनका इनका special name नहीं है जैसे 3 है तो ये 30 लिख दिया है इसको ये 3 है ना इसको 30 बोला और उसके बाद 3 आट कर दिया, 33, ऐसे 2, 2, 1 है, तो 2 को 20 बोला, और 1 को 1 बोला, 21, पर यहाँ पर ऐसा नहीं करते हैं, है न, तो यह special case है, तो इसका मतलब क्या हुआ, कि हम 10 से 19 वाले numbers को भी specially treat करेंगे, और उसको भी store कर लेंगे, अपने एक map में, है न, अपने एक map में store कर उनको भी एक मैप में हम डारेट पहले ही स्टोर कर लेंगे, कि बाई 10 को हम लोग क्या बोलेंगे?

10, 11 को क्या बोलेंगे? 11, 12 को क्या बोलेंगे? 12, आना क्योंकि ये भी special names है, इसको derive नहीं किया जा सकता, आना तो and so on, तो 10 से 19 तक का भी हमारा sorted हो गया, कोई attention नहीं है, एक मै जीरो तो सॉटेड है अपना, और क्या क्या है, 10 से 19 तक का मिल गया, ठीक है, तो चलो अब आगे बढ़ते हैं, हमने 19 तक का तो कवर कर लिया था, अब एक काम करते हैं, less than 100 वाले numbers को देखते हैं, है न, मतलब 19 के बाद वाले और less than 100 वाले, मतलब 20, 21, 33, 45, जो भी number है, less than 100, 95 and तो देखिए इनको कैसे लिखा जाएगा, अगर आप ध्यान दो यहाँ पर, किसी एक को पकड़ते हैं, माल लेते हैं इसको आपने पकड़ा, पकड़ा, 33 को पकड़ा, ठीक है, तो अब एक चीज ध्यान दो यहाँ पर, इसको कैसे पढ़ेंगे इसको, सबसे पहले तो देखो है और उसके बाद जो रिमेनिंग यूनिट प्लेस है उसको तो मस्त लिख सकते हैं इसी ना 30 यह तो थ्री लिख दिया डायरेक्टली हमने ठीक है सिमिलरली अगर 45 होता तो फॉर को अगर हमने टेंस पोजीशन पर फॉर है तो फॉर अगर नंबर है वह तो ऐसे लिख दो मस्त 545 ठीक है तो आप चीज नोटिस करो यहां से एक और चीज आपको जानकारी कि बिलो 100 वाले जो नंबर्स हैं, उसमें जो 10th position पे जो होते हैं digits, उसकी naming भी थोड़ी unique होती है, 30, 40, 20, 60, 70, 90, तो ये चीज़ आपको store करना पड़ेगा, 30, 3 अगर 10th position पे है तो उसको 30 बोलते हैं, 4 अगर 10th position पे है तो उसको 40 बोलते हैं, तो ये जानकारी भी आपको store करना पड़ेगा, तो उसके लिए भी हम एक अलग map बना लेंगे, और वो map कुछ ऐसा होगा, कि अगर मेरा, 3 जो है वो 10th position पे है, मतलब उसकी value क्या है, अगर 3 10th position पे है तो उसकी value क्या है, 30 है, right, अब्यस ये बात है, 4 अगर 10th position पे है तो उसकी value क्या है, 40 है, तो उसका master store कर लेते हैं, कि अगर 3 10th position पे है तो उसकी value 30 होगी, उसको हम लोग क्या पढ़ेंगे, 30 पढ़ेंगे, ठीक है कि अगर तुम लेटिव टेंस पोजीशन पर है तो उसका पड़ेंगे 20 पड़ेंगे एंड सो आन थर्टी ट्वेंटी थर्टी फोर्टी फिफ्टी एंड सिक्सटी कहां तक 90 तक है ना जैसे मान लेते हैं वे लास्ट सबसे बड़ा नंबर क्या है लेस्ट ने 99 है तो इसमें वही है कि टेंस पोजीशन पर ना ना तो इसको कैसे लिखेंगे नाइनटी नाइनटी उसका यूनिट वाला तो देख दो 99 ना तो यहां पर 90 मैंने यहां से निकाला अ ठीक है तो टेंथ पोजीशन पर जो नंबर उसको कैसे निकालते हैं बड़ा सिंपल है भाई टेंथ से डिवाइड मारो तो टेंथ से डिवाइड मारोगे तो क्या हो जाएगा टेंथ पोजीशन पर जो नंबर है ना वो नि कि भाई 9 अगर 10th position में है तो उसको 90 पढ़ा जाता है हाँ लेकिन map में है मैं ऐसे 0 extra लगा दे रहा हूँ ठीक है या तो आप नहीं भी लगाओ तो चलेगा बस इस map का नाम अच्छे से रख लेना इस map का नाम हम लोग क्या रखेंगे क्या रखोगे below 100 रख लेते हैं below 100 ठीक है तो इसका मतलब क्या हुआ कि अगर 10th position पर 3 है तो 30 पढ़ेंगे अगर 10th position पर 4 है तो 40 पढ़ेंगे कि सेकंड पोजीशन टेंप इसमें टू तो 20 पड़ेंगे और यह वाला जो मैप हमने बनाया था ठीक है इसको क्या बोलते हैं इसको बोलते हैं बिलो ट्वेंटी नाम रख देते हैं इसका नाम भी ऐसा रखो मैप का यह थोड़ा सा समझने में में वन कमत्त टू है थ्री कमत्त थ्री है बिलो ट्वेंटी में टेन लेवन टूअल पढ़ा जाता है कि अब यहां पर देखो बिलों हंडड में थ्री को थर्टी पढ़ेंगे क्योंकि मैं थर्टी फोटी फिफटी इन की बात कर रहा हूं बट बिलों टेन में थ्री को थ्री पढ़ेंगे टू को टू पढ़ेंगे इन सुन इसलिए मैप मैंने अलग-अलग रखा है कि देखो थ्री को यहां तद इस थ्री को यहां थ बट अगर वो बिलो 100 है तो 3 को 30 पढ़ रहे है, 4 को 40 पढ़ रहे है, 4 नहीं पढ़ रहे है, 3 नहीं पढ़ रहे है, ओके, ठीक है, तो एक और मैप की जनकारी मिल गई कि हमें एक और मैप ऐसा स्टोर करना पढ़ेगा, ठीक है, अब देखो इसके बाद मुझे नहीं लगता औ ठीक है, यह hundredth position पे है, है न, अगर यह hundredth position पे है, तो तो क्या पढ़ोगे, 900 पढ़ोगे, अगर यह hundredth position पे है, तो क्या पढ़ोगे, इसको 900 पढ़ोगे, ओके, अब देखो ध्यान दो, अब मैं वही दिमाग लगाने वाला हूँ, मैं बोलूंगा कि भाई, चल यह 900 है न, 900 है वर्ड में 900, 100 तो लिखना पड़ेगा मुझे, ठीक है, ओके, यहाँ तक clear है, उसके बाद remaining जो string आने वाला है, वो तो 95 है, वो तो मैं solve function को बोल दूँगा कि भाई तू लेा, 95 के लिए, ले आए मेरे लिए सॉल्व करके ठीक है और इस हंड्रेड से पहले देखो यहां पर नाइन था ना तो यहां पर नाइन लिख देंगे नाइन हंड्रेड प्लस और इन 95 का ही मेरे सॉल्व करके ले आएगा ठीक है अब देखो यहां पर ध्यान दो अगर मान लेते हमारा यह नंबर 900 होता तो अगर ऐसा कुछ नंबर होता तब क्या करते हम लोग ठीक है अब देखो ध्यान दो यहां पर आप फिर से वही करते इसको इसका वन सेंस हंड्रेड था अंडेट्स वाला पोजीशन निकालते ठीक है कैसे निकालते इस बार अब हंड्रेस डिवाइड कर लेते हैं अंदर डिवाइड करते हैं तो हंड्रेस पोजीशन पर जो डिजिट है वह मिल जाता मुझे तो अंदर प्लेशन डिजिट कौन सा नाइन है ठीक है तो मैंने क्या किया यहां पर नाइन तो लिख दिया और वह प्लेशन पर तो लिख दिया मैंने ठीक है अब देखो इसके बाद को रिमेनिंग नंबर है ना रिमेनिंग नंबर उसको कैसे निकाल रहे हम लोग ओब्यस है 100 से मॉडिल ले जैसे यहां पर 95 था रिमेनिंग नंबर वह कैसे निकाल होगा मैंने 995 को 100 से modulo ले लो तो 100, 9 जा modulo का बजा 95 बज गया तो बस modulo भेजना था हमें तो यहाँ पर मैंने क्या भेज दिया जो भी number है modulo 100 भेज दिया तो modulo 100 करने पर क्या आ जाएगा यह 95 बन जाएगा रिमेंडर जो होगा पर यहाँ पर अगर आप ध्यान दो लोगे तो आपका रिकर्शन जीरो को क्या रेटर्न कर रहा था याद करो ऊपर मैंने बताया था आपको कि जीरो के लिए रेटर्न कर देंगे तो क्या यहां पर जीरो लगाने वाले हैं यहां पर आप नाइन हंड्रेड यहां से जीरो आएगा तो यहां पर सॉल्व करने से पहले ना जैसे यह मॉडिउल लोग एंड यह कॉल करने से पहले यहां पर चेक कर लेंगे कि नाइन हंड्रेड अ अजय को है मॉडिलो हंड्रेड जो है जो भी नंबर है मॉडिलो हंड्रेड ना इट मस्ट नॉट बीकल टू जीरो ठीक है इट मस्ट नॉट बीकल टू जीरो तभी जाकर मैं यह सॉल्व फ्रंक्शन कॉल करूंगा क्योंकि जीरो तब तो कुछ करना ही नहीं है 900 इसका अवसर है अब इसको 900 पड़ते हैं इंग्लिश में ठीक है तो यह माइनर सच चेक तो मैं ध्यान देना था ठीक है कि it must not be equal to 0, तब ही जाकर आगे call करेंगे, ठीक है, यहां तक clear है, okay, तो यह तो हो गया, 100 वाला case हो गया, 900, 800, 700, और यह सारे number देखो तो, less than 1000 है, है न, लेस्ट दन थाउजन है अब फर्दर और कितना बड़ा नंबर हो सकता है यह टेन थाउजन ठीक है जैसे मान लेते हैं हमारा नंबर ऐसा कुछ है यह तो 995 है ना मान लेते हैं नंबर ऐसा होता 995 होता ठीक तो यहां पर अगर आप ध्यान देते हो तो यह वन से टेंस हंड्रेड यह थाउजन डिजिट पर इस बार ठीक है इस बार यह थाउजन डिजिट पर है तो कर देंगे thousands से, अगर thousands से divide करोगे, तो अब वैसे 9 आएगा integer value 9 आएगा ना तो 9 अगर आया, तो मैंने यहाँ पर 9 लिख दिया, इसकी वज़से 9, और यह since thousands वाला चल रहा है, तो यहाँ पर मैंने thousands भी लिख दिया, ठीक है अब जो remaining है, 995 जा इसको solve करके लिया, और इसको solve करके 995 कैसे निकालोगे 9995 था ना कि इसको मॉडिलो कर दो थाउजन से ठीक है थाउजन से मॉडिलो करें तो 995 आ जाएगा ना तो 9995 मॉडिलो थाउजन और मॉडिलो करने पर देखो नॉन जीरो आ रहा है इस नॉटर नॉन जीरो वैल्यू तभी हम कॉल करेंगे इसको ना जो पर हिट मारेंगे इस सॉल्फ फंक्शन को तो यह तो मेरा सॉल्फ कर देगा अब यहां नहीं कि यहां पर क्या चला जाएगा 995 कॉल हो जाएगा और 995 सॉल्फ कर देगा मेरे काम को जो मैंने ऊपर सॉल्फ किया था भी है ना जो भी स्ट्रिंग ठीक है अब मान कर चलते हैं कि अब 1000 ऐसा भी होता है ना 48000 हो गया यह तो 9000 हो गया 8000 6000 7000 तो यह सिंपल 1000 हुए ठीक है बट मैं बोल रहा हूं अगर बड़े और भी बड़ा नंबर हुआ जैसे नाइंटी फाइड एटी फाइड सेंटी सिस थाउजन ठीक है तो जैसे मान लेते 98000 होता 995 वन सेंट थाउजन ठीक है तो इस केस में देखो कि इस केस में अगर आप ध्यान दोगे तो यहां पर देख रहो वन से 10 से हंड्रेड है थाउजन है टेन थाउजन है तो टेन थाउजन के केस में क्या करेंगे 98,000 लिखते तो याद है 98 लिखा इसको और उसके बाद थाउजन लिखा ठीक है उसके बाद थाउजन लिखा तो अब अब इसी बात है अब देखो इसको यह 98 कहां से लाएंगे अब देखो ध्यान देना अ अगर माल लेते हैं, यह सिंस यह thousands में ही चल रहा है हमारा गिंती, thousands में ही चल रहा है, तो अब वैसे फिर से वही करेंगे, जो यहाँ पर किया, thousands से इसको divide मारते हैं, अगर thousands से इसको divide मारोगे न, तो यह 98 आएगा, अब वैसे बात है क्यों, क्योंकि यह 98,000 है, ओके, और इसक ठीक है, नाई 95 तो मेरा यह recursion solve करके ला देगा, मुझे attention लेनी ज़रूरत नहीं है, बद दे करो यहाँ पर 98 अब हम कैसे लिखेंगे, अभी तक तो simple लग रहा था, कि मतलब यह 98 को कैसे store करेंगे, तो देखा जाये तो 98 भी तो एक वो वाला number है न, below 100 वाला number है, 98 भी तो मेरा below 100 वाला number है ठीक है तो आराम से इसको भी मैं recursively निकाल सकता हूँ है ना मैं क्या बोलूँगा कि 98 का भी string मैं नहीं निकालूँगा बताब यह 98 है ना 98 आया था ना यह भी मैं नहीं निकालूँगा यह भी मैं recursion को ही दे दूँगा ठीक है मैं क्या करूँगा solve function call करूँगा कि जो भी 98 क्या number था 98 नाइन नाइन फाइव तरह डिवाइड बाई थाउजन बताब 98 मैंने भेज दिया रिकर्शन को वह मुझे 98 इंटीजर भेज दिया यह मुझे क्या लाकर दे देगा स्ट्रिंग में लाकर देगा 98 उसमें मैं थाउजन ऐड करूंगा और उसके बाद और एक यहां पर ठीक है तो आप बोलेगे यहां पर भी तो कर सकते थे यह थोड़ा सिंपल के इसलिए यहां पर पर एक ही डिजिट था 9 तो मैंने डायरेक्ट नहीं लिख दिया था मैं बोलता वह डिफिनिटल यहां पर भी कॉल कर सकते थे यहां ना 9995 तो आप मैंने आप यहां पर क्या करो कि सॉल्व कॉल कर दो क्या नंबर है ट्रिपल 95995 डिवाइड बाई थाउजन यहां कॉल कर दो यह आपको क्या लाइक देगा नाइन लाकर देगा आपको यह ऑफिस बात है ट्रिपल नाइन फाइव डिवाइडेड बाई थाउजन क्या आता है नाइन आता है तो सॉल्व नाइन करोगे ना तो आपको बताएं क्या देगा नाइन लाकर देगा तो यहां पर मैंने पेंड हो जाएगा 9000 सॉल्व एर यह 995 भेज रहे थे हम लोग यहां पर 995 तो यह क्या आता है कि देगा 995 लागे देगा ठीक है तो इसका तक हमें सिंपली इस तरह से रिकर्शन कॉल करना है बीच में 1000 और ये ठीक है आप देखो यहाँ पर ध्यान दो ये thousand क्यों लिख रहे हैं हम लोग क्योंकि देखो इस number को देखो ये thousands की गिनती में आ रहा है न ये thousand में पढ़ रहे हैं न हम इस इसलिए यहाँ पर thousand बीच में append किया है मैंने, यहाँ पर देखो, यह hundred में हम इसको पढ़ रहे थे, 900, 845, 781, जो भी number है, तो इसलिए बीच में देखो hundred append कर रहे थे हम लोग, ठीक है, तो obvious वाद, और यह भी decide करना बहुत असान है, हम कब तक thousand पढ़ते हैं, जब तक हम lakhs तक अजय को लेस्ट देन सॉरी थाउजन है तो बीच में हम हंड्रेड अपने करेंगे कि लेस्ट देन है थाउजन वाले नंबर्स क्या होते हैं 995 821 326 एंड सुवां तो इसमें हंड्रेड अपने कर रहे हैं बीच में ठीक है अगर लेस्ट देन थाउजन है तो ना और अगर वह लेस्ट देन वन लाख है 12345 तो बीच में क्या पैंक करते हैं याद करो थाउजन अपने कर रहे हैं ना कि 95000 ठीक है 9081 एंड सो ऑन जो भी नंबर है तो थाउजन अपन कर रहे हैं उस केस में ओके आवर विशेष बात है इसके बाद भी बड़ा नंबर आएगा मान के चलते हैं अ अब देखो ध्यान देना, एक, दो, तीन, चार, पांच, शे, साथ, आठ, नौ, अगर इससे छोटे नंबर्स हैं, तो उसको हम लोग क्या पढ़ेंगे, मिलियन, ठीक है, और इसके बाद क्या होगा, इसके बाद होगा कि, यह इक्वल टू दिस या इससे बड़ा नंबर, है 789123456789 तो गिट एकुल तो यह नंबर यूज करते हैं बिलियन यूज करते हैं ठीक है यहां तक लिया और सबसे इंपोर्टेंट कैच यहां पर यही था देखो यह जो मैंने आपको यहां पर पढ़ाया ना यह वाला अ कि इधर वाला भी digit जो है वो solve से निकाल लेंगे solve function call कर देंगे वो लाकर दे देगा मेरा और इधर वाला भी solve से निकाल देंगा बस बीच में decide करना है कि क्या लिखना है hundred लिखना है या thousand लिखना है या million लिखना है या billion लिखना है ठीक है और उससे छोटे जो numbers है less than ये सारे 1000 है मान लेते हैं 995 होता ठीक है अगर वह लेस्ट दन 1000 है तो अब इसी बात है या करो कैसे निकालते थे इस डिजिट को 100 से डिवाइड करके निकालते थे ठीक है यह तक लेट अगर लेस्ट दन वन लाख है तो 1000 से डिवाइड करते थे यह तो यहां पर थाउजन से डिवाइड कर रहे थे 98000 एंड सो आन यह आप खुद से डिसाइड कर सकते लेजन थाउजन है मतलब कोई एजांपल लो 845 जी रू यह 845 वन स्टेंस अंदर थाउजन ठीक है सॉरी 845 हो गया तो लेजन थाउजन है यह तो अब इसे बात कैसे निकालोगे कि एट हंड्रेड है डिवाइडेड बाई हंड्रेड करते ना ठीक है और यहां पर देखते 845 वन है तो यह लेस्ट थन वन लाख है राइट तो यह थाउजन की नंबर में आ रहा है तो यहां पर नॉर्मल से मैथमेटिक से प्लेस वाल्यू अपने बच्चमें पढ़ा होगा वही जीवन यहां पर बता रहा हूं ठीक है यहां तक लिया है ओके फिर यहां पर इस केस में ऑफिस बात है कितने से डिवाइड करोगे मान लेते हैं कोई नंबर है उसका आप डिवाइड करोगे 12345 लगन लाइट करोगे एंड सो ओन ओके ठीक है तो यहां तक आप तो आपको समझ में आ चुका होगा अच्छे से तो अब फर्थ देखते हैं कि इसका कोड में हमें अब कैसे लिखना देखा है तो हमने ऑलमोस्ट हम सारी चीजें कवर कर लिए बस आप हमें इसका कोड लिखना है देट्स इट है ना सबसे इंपोर्टेंट कैच यही वाला था जो मैंने आपको बता दिया ठीक है कि इसके लिए भी सॉल्फ कल्ड कर देंगे इसके लिए सॉल्फ कल कर देंगा नंबर है वह टू का पास थर्टी वन मानेस वन तक जाएगा ठीक है इसकी वाल्यू क्या होती है 2147483 647 इसकी इसे दो कितने पोजीशन से वन से एक दो तीन चार पाँच शेयर साथ नौट दस और हमारा मैक्सिमल यहां तक दस डिजिट तक ही गए एक दो तीन चार पाँच शेयर नौट दस ठीक है तो इससे बड़ा इससे आगे जाने की जरूरत भी नहीं है आपको है तो लिमिट ही इतना तक दे रखा अब दो फोटोट करेंगे तो एक्सैक्टली जो चीजें हमने हैंडल की ना एक एक पॉइंट लेस्ट दन टेन या बिलो टेन बिलो ट्वेंटी बिलो थाउजन वाला मैप यह सारी चीजें वहां पर मैं आपको दिखाऊंगा करके ठीक है कोई बीचेज मिस्त नहीं होगी तो अभी कोड करते हैं तो स्टोरी को कोड से रिलेट करके जो भी स्टोरी अभी मैंने समझाई है वैसे कोड करेंगे ताकि लाइन बलान आपको हर एक चीज समझ में आना चाहिए ठीक है तो चलो जल्दी से कोड करते हैं इसको फिनिश करते हैं तो चलो इसको चार्ट करते हैं सबसे पहले तो मैंने बोला था कि तीम बना लेंगे बेलो टेन बेलो ट्वेंटी और बेलो हंड्रेड वाले नंबर का ठीक है तो मैंने ऑलरेडी कॉपी पेस करके रख लिया ताकि 100 मैप ज्यादा सही लगा इसलिए मैंने मैप में स्टोर कर दिया अब दोख ध्यान दो बिलों टेन मतलब वन टू थ्री फोर फाइव सिक्स सेवन एट नाइन एंड सो ऑन तो देख रहो उस केस में 89 मैंने लिख दिया और जीरो के केस में मैंने इसे नहीं भेजाएं पर ना एंटी है और बिलों 20 केस में देखो 10 11 12 13 14 से 19 तक ठीक है और बिलों जाएगा ठीक है अगर टू है तो इसको 20 पढ़ा जाएगा अजय को जाएगा थ्री है तो 30 फॉर तो 45 तो 50 एंड सो ऑन क्योंकि यह टेंथ अंडेट्स वाले पोजीशन पर है ठीक है ओके अब आगे बढ़ते हैं मैं सबसे पहले मैंने क्या बोला कि अगर मेरा नम मेरा जीरो के बराबर है तो बिस मुझे को कुछ नहीं करना यह आप सिंपल सा केस है जीरो रेटर्न कर देंगे ठीक है यहां तक लिया और हां पहला कैरेक्टर कैपिटल होना चाहिए एसपर एग्जांपल पहला कैरेक्टर कैपिटल रख रहा है ठीक है उसके बाद मैंने का बाला सिंपल सा करेंगे और नम को भेज देंगे बाकी पूरा कामरा यह सॉल्व फंक्शन करेगा ठीक है स्ट्रिंग सॉल्व इंट नम ओके अब देखना ध्यान देना अब क्या-क्या केस थे पहला केस यह था कि जो नम है ठीक है हो सकते हैं जो सकता हुए रविलो टेन हो तो अगर बिलोटेन है तो बिलोटेन वाला अराम से मैप यूज करो कहानी खत्म वह आपको स्ट्रिंग लाकर दे देगा ठीक है अगर इस नम जो है बिलोटेन टी है तो क्या करना रेटर्न बिलोटेन टी नम भी दो यह आपको स्ट्रिंग लाकर देगा कोई दिक्कत नहीं है ठीक है इसके बाद एक और क्या था नाम अगर बिलोटेन टी हुआ ठीक है तो देखो बिलोटेन 100 के केस में मैंने क्या बोला था? Simply below 100 जो भी मेरा number है ठीक है आप दोस्तों ध्यान देना जो भी नंबर कैसे निकालते थे कि कौन सा नंबर डिजिट है जो हंड्रेट पोजीशन पर है उसको किससे डिवाइट करते थे बाई टेन डिवाइट करते थे जैसे फॉर एजांपल एग्जांपल ले लेते हैं माले एट्टी ने नंबर है तो यह बिलों हंड्रेट है तो इट जो है उसको एट्टी पढ़ेंगे ना तो यहां पर मैप में जाओ यहां पर दोख इस मैप में देखां दो इट के लिए मैंने ठीक है अब 80 के बाद वाला जो digit 9 है ना उसो कैसे निकालोगे देखो ध्यान देना है यहाँ पर plus करना हूँ यहाँ पर 9 लिखाना चाहिए ठीक है और 9 क्या है कि below 10 वाला number है ठीक है तो हमें बस इतना check करना है कि जो मेरा number है जो भी number है इसको पहले तो modulo 10 कर देते हैं तो क्या आ दे नम परसेंटाइल एक वैल्यू आना चाहिए ना जीरो नहीं होना चाहिए तो अगर ये not equal to जीरो रहा ठीक है तो मैं एक space दे दूँगा और space देने के बाद below 10 वाला number है ना वो तो below 10 divided num modulo 10 ये add कर दिया तो ध्यान देने यहाँ पर मैंने क्या लिखा है कि अगर num modulo 10 not equal to 0 है इसको ऐसे एट्टी तो यहां लिखा गया था प्लस इसको ऐसे लिखोगे न एट्टी और इसके बाद एक स्पेस दिया तो देखो यहां पर मैंने स्पेस दे दिया उसके बाद नाइन लिखेंगे और वो नाइन मुझे कौन दे देगा बेलो टेन वाला है ना और नम मॉडलो कुछ नहीं डालेंगे empty string दे देंगे यहां तक clear है ओके अब इसके बाद बहुत easy cases है कि अगर मेरा num जो है वो less than thousand होता है ठीक है और इसको example लेकर चलो मान लेते है 879 है मान के चलते है ठीक है तो मैंने क्या बला था कि मैं simply solve call कर दूँगा ठीक है thousands place में कौन है उसके लिए num by 100 से divide करेंगे उसको तो thousand place वाला sorry hundred place वाला number है ना क्योंकि thousand से कम है तो hundreds place में कौन सा number है वो num by 100 करके और solve को ही call कर दूँगा वो मुझे ला कर दे देगा जैसे num by 100 करके तो यहाँ पर 8 आजाएगा ना तो मुझे 8 ला कर दे देगा यह string 8 का English word दे देगा यह solve function 8 ला कर दे देगा ओके अब एट ला दिया उसके बाद याद करूंगा नहीं कि आप लगा सिंस लेस्ट थाउजन है तो मुझे बीच में हंड्रेड अपन्ड करना है ठीक है यहां पर मुझे हंड्रेड अपन्ड करना और दोस्तों स्पेस दिया मैंने अंदर से पहले क्योंकि स्पेस नंबर है नम परसेंटाइल हंड्रेड ठीक है अगर वह नॉट इक्वल टू जीरो है अगर वह नॉट इक्वल टू जीरो है है तब मैं एक स्पेस दूंगा ठीक है और जो रिमेनिंग है उसको लिए सॉल्व फंक्शन कॉल कर दूंगा कि नम मॉडूलो 100 लाकर दे दो मैं अपन कर दूंगा ठीक है और अगर वह जीरो के बराबर हुआ तो मैं एमटी स्ट्रिंग डाल दूंगा यहां 100 नॉट इकवाल जीरो ना चाहिए अगर नॉट इकवाल जीरो तो एक स्पेस देंगे और सॉल्व नम परसेंटाइल 100 मतलब 79 मैंने भेज दिया तो 79 लाखे देगा मुझे तो क्या हो जाएगा 870 नाइन यह तक लिया और सिमिलरली मैं बाकी केसिस के लिए लिख दूंगा कि अगर वह मेरा लेस्ट दन थाउस तो इस बार क्या होगा लेस्ट देन वन लाख एक दो तीन चार पांच ठीक है तब वह थाउजन्स वाले नंबर में आ जाएगा है ना तो उस केस में क्या करेंगे सॉल्व नंबाई यहाँ पर थाउजन करेंगे प्लस यहाँ पर हंड़ेट की जगह थाउजन लिखेंगे प्लस नम मॉडिलो यहाँ पर क्या करोगे थाउजन करेंगे और यहाँ पर नम मॉडिलो थाउजन ठीक है सबकुछ सेम है बस चीजें यहाँ पर चेंज जा रहे है कि लेस्डन कौन सा है वो ठीक है इसके बाद फिर से यहाँ पर लेस्डन एक दो तीन है ओके और इस केस में किसी डिवाइड करेंगे वह एक तो लाख से दूती चार पांच अ है ठीक है और यहां पर क्या करेंगे मायल सॉरी मिलियन यहां पर भी वन लाख है झाल है एक दो तीन चार पांच ठीक है और इससे बड़ा हुआ तो अब वैसे वह बिलियन वाला केस उससे बड़ा होगा भी नहीं तो एल्ज जानने की जरूरती नहीं है डायरेक्ट लिख दो यहां पर एस ऑल व नम डिवाइडेड बाई वन एक 123456789 ठीक है प्लस स्पेस देखे बिलियन प्लस अगर नम मॉड्यूलो एक दो तीन चार पांच सेट नौ ठीक है इस नॉट इक्वल टू जीरो है ठीक है तब एक स्पेस देखे प्लस सॉल्व नम मॉडियोलो एक दो तीन चार पांच छह साथ नौ नहीं तो फिर इंटी ठीक है काफी सिंपल बहुत सा प्रॉब्लम में देखा जाये तो बहुत चीज़ां आपको यहां पर केसेस हैंडल करने पड़े इसीलिए इसको हार्ड मार्क किया गया है ना मतलब जरूर इंटरव्यू में इतना प्रीसाइस कोड लिख पाना थोड़ा सा टॉफ होता है ओके अ अब देखो यहाँ पर हमने एक सिली मिस्टिक क्या कर दिया थाउजन कब तक हम थाउजन में पढ़ते हैं यहाँ पर मैंने एक दो वन लाग कर दिया जबकि लेस्ट दन टेन लाग वाले केस में हम थाउजन तक पढ़ते हैं है ना और यहाँ पर भी देखो एक जीरो मिस हो ग इंडीडियस, we have passed all the disk cases अब इसका time and space complexity समझ लेते हैं उसके बाद इस वीडियो को close करते हैं तो अब देखो ध्यान दो time and space complexity में मान के चलते हैं हमारा जो number दे रखा है वो कुछ ऐसा है, A, B, C, D, E, F मान के चलते हैं ठीक है और आपको ये पता होगा आप अल्रेडी कि इस किसी भी नंबर में जितने नंबर ऑफ डिजिट्स हैं कितने नंबर ऑफ डिजिट्स वह कैसे निकालते हैं नंबर ऑफ डिजिट्स कैसे निकालते हैं लॉग ऑफ जो भी नंबर है है ना टू द बेस्ट 10 plus 1, ठीक है, इससे क्या होता है, number of digits निकलाते हैं, कि इस number में कितने digits होंगे, और अगर आप ध्यान दो, तो जब भी हम recursion call कर रहे हैं तो worst case में क्या होगा, एक बार में एक digit हम solve कर पा रहे होंगे, worst case में, ABCD, यह माले थी यह मेरा number है, तो एक बार में मैंने एक digit का solve कर लिया to number of digits है यहाँ पर जो भी मेरे number of digits है in num ठीक है तो obvious है हमारा time complexity कितना हो जाएगा number of digits कितने है log of num टू देश 10 प्लस वन ठीक है प्लस वन को इग्नोर मार देते हैं ठीक है लॉग ऑफ नम टू देश तो यह टाइम कंप्लेसिटी हो गया और स्पेस कंप्लेसिटी में याद करो हमने मैप जो लिया था वह फिक्स साइज के तो उसको मैं नहीं हो कॉंस्टेंट है वह बट हम रिकर्शन कॉल कर रहे हैं तो रिकर्शन का सिस्टम का स्टैक्स पेस ले रहे हैं और तो इतना recursion का depth हम use करने वाले हैं तो इतने number of digits कितने हो जाएगा जितने number of digits थे log of num to the base 10 plus 1, plus 1 को ignore मार सकते हो चोटा term है तो हमारा space complexity भी यह हो जाएगा ठीक है, I hope I was able to help See you guys in the next video, thank you