Computer >> कंप्यूटर >  >> प्रोग्रामिंग >> Ruby

रूबी साक्षात्कार कोडिंग चुनौतियां और उन्हें कैसे हल करें

कोडिंग चुनौतियों को करना आपके रूबी और समस्या-समाधान कौशल को बेहतर बनाने का एक शानदार तरीका है। और साक्षात्कार कोडिंग की तैयारी करने के लिए !

क्यों?

क्योंकि एक चुनौती के दौरान आप अपना सारा ध्यान 1 विशिष्ट समस्या को हल करने में लगाते हैं।

आपको किसी और चीज़ के बारे में चिंता करने की ज़रूरत नहीं है।

इस तरह के अभ्यास से आपके सोचने के कौशल का विस्तार होगा, जिससे आप दिलचस्प भाषा सुविधाओं का पता लगा सकते हैं और एक बेहतर रूबी डेवलपर बनें।

इनमें से कुछ चुनौतियों के लिए कंप्यूटर एल्गोरिथम, डेटा संरचना या अवधारणा के बारे में विशेष ज्ञान की आवश्यकता होती है, जैसे कुछ गणित की चाल।

यदि आप इनमें से अधिकांश का समाधान नहीं कर सकते तो कोई बात नहीं।

चिंता मत करो!

अब :

मुझे लगता है कि इन चुनौतियों को हल करने की प्रक्रिया को समझने के लिए कुछ समाधानों को पढ़ना मददगार हो सकता है।

से शुरू हो रहा है…

चुनौती 1:डुप्लिकेट ढूँढना

यह पहली चुनौती है कि Integer . के साथ एक सरणी दी गई है सभी डुप्लीकेट नंबर खोजने के लिए आपको जिन मानों की आवश्यकता है।

यहां एक उदाहरण दिया गया है :

numbers = [1,2,2,3,4,5]

find_duplicates(numbers)
# [2]

आइए एक प्रश्न से शुरू करते हैं…

"मुझे कैसे पता चलेगा कि कोई विशेष संख्या दोहराई गई है?"

मैं एक कदम में समाधान पाने की कोशिश नहीं कर रहा हूं।

इस स्तर पर, मैं केवल एक प्रश्न पूछना और उसका उत्तर देना चाहता हूं जो मुझे समाधान के करीब ले जाएगा।

कुछ उपाय लिखें :

  • मैं गिन सकता हूं कि हमारे पास एरे में कितने नंबर हैं, फिर काउंट =2 का मतलब डुप्लिकेट है।
  • मैं हर तत्व पर जा सकता हूं और "देखे गए" तत्वों की एक सूची रख सकता हूं, अगर मुझे एक तत्व दो बार दिखाई देता है तो हमें एक डुप्लिकेट मिला।
  • मैं संख्याओं को एक स्ट्रिंग में जोड़ सकता हूं और दोहराए गए नंबरों को रेगुलर एक्सप्रेशन से मिलाने की कोशिश कर सकता हूं।

इस बिंदु पर "कौन सा सबसे अच्छा है" इससे कोई फर्क नहीं पड़ता।

इसके बारे में चिंता न करें!

अभी, कार्य समाधान प्राप्त करना महत्वपूर्ण है। जो आपको अच्छा लगे उसे चुनें और उसके लिए कोड लिखें।

उदाहरण :

seen = []

numbers.each_with_object([]) do |n, dups|
  dups << n if seen.include?(n)

  seen << n
end

# [2]

यह सही समाधान लगता है।

अब :

आप यह सुनिश्चित करने के लिए अन्य इनपुट (अलग-अलग सरणियाँ) आज़माना चाहते हैं कि यह वास्तव में काम करता है, इसके लिए यूनिट परीक्षण लिखना बहुत अच्छा है।

अगर समाधान 100% काम कर रहा है तो आप अन्य समाधानों को आजमा सकते हैं और एक का उपयोग कर सकते हैं जो समझने में आसान हो।

पूर्णता की तलाश मत करो।

हर दिन सीखने, समझने और प्रगति करने के लिए देखें!

चुनौती 2:मान्य शब्द

वर्णों की एक सरणी और एक शब्द को देखते हुए, पता करें कि क्या इन वर्णों से शब्द बनाया जा सकता है।

उदाहरण :

word = "orange"
characters = %w(e n g a r o)

valid_word?(characters, word)
# true

फिर से हम अपनी सोच प्रक्रिया को निर्देशित करने के लिए एक प्रश्न के साथ शुरू करते हैं।

"हम कैसे सुनिश्चित कर सकते हैं कि शब्द इन पात्रों के साथ बनाया जा सकता है?"

विचारों के साथ आओ।

विकर्षणों को दूर करें और इसके बारे में सोचें।

यह कागज पर ऐसा करने में मदद कर सकता है

मेरे विचार:

  • हर वर्ण के लिए word , उस वर्ण को characters . से हटा दें सरणी, यदि आप सभी वर्णों को नहीं हटा सकते हैं तो false return लौटाएं
  • सभी वर्णों को word में गिनें &characters , फिर गिनती घटाएं

यहां एक संभावित समाधान दिया गया है :

word
  .each_char
  .all? { |ch| characters.delete_at(characters.index(ch)) rescue nil }

आपका समाधान क्या है?

इसे टिप्पणी अनुभाग में साझा करें।

सारांश

आपने कोडिंग चुनौतियों के बारे में सीखा है और अपने रूबी कौशल को बेहतर बनाने के लिए उनका उपयोग कैसे करें!

याद रखें :

किसी विशिष्ट चुनौती को हल करने में सक्षम नहीं होना बिल्कुल ठीक है। इसे एक वीडियो गेम बॉस की तरह समझें, अगर बॉस 100 के स्तर पर है और आप 70 के स्तर के हैं तो इस बॉस को हरा पाना वाकई मुश्किल होगा।

उस मामले में आप क्या करते हैं?

आप स्तर ऊपर जाएं और आसान चुनौतियों का अनुभव प्राप्त करें (निचले स्तर के बॉस), और आप बेहतर गियर प्राप्त करें (रूबी और प्रोग्रामिंग के बारे में अधिक सीखना)।

गुड लक मजे करो!


  1. एक मैट्रिक्स क्या है और रूबी में इसका उपयोग कैसे करें?

    मैट्रिक्स एक 2डी (2-आयामी) सरणी है जिसका उपयोग स्प्रेडशीट जैसे डेटा को स्टोर और काम करने के लिए किया जा सकता है। उनका उपयोग इसके लिए किया जा सकता है : टेबल गेम (शतरंज, चेकर्स, आदि) में बोर्ड का प्रतिनिधित्व करना सांख्यिकी और डेटा विश्लेषण प्लॉट और ग्राफ़ बनाना चूंकि यह एक शक्तिशाली डेटा संरचना ह

  1. रूबी में स्ट्रक्चर और ओपनस्ट्रक्चर का उपयोग कैसे करें?

    रूबी में स्ट्रक्चर क्या है? एक संरचना एक अंतर्निहित रूबी वर्ग है, इसका उपयोग नए वर्ग बनाने के लिए किया जाता है जो मूल्य वस्तुओं का उत्पादन करते हैं। संबंधित विशेषताओं को एक साथ संग्रहीत करने के लिए एक मूल्य वस्तु का उपयोग किया जाता है। यहां एक उदाहरण दिया गया है : एक Point दो निर्देशांकों के साथ

  1. 4 रिमोट एक्सेस जोखिम और उन्हें कैसे हल करें

    वर्क फ्रॉम होम एक नया चलन है, जो शुरू हो गया है, और कई लोग ऑफिस सिस्टम या नेटवर्क तक रिमोट एक्सेस लेना पसंद करते हैं और दूर से काम करना पसंद करते हैं। हालांकि यह बहुत सहज लग सकता है और बड़ी संख्या में अवसरों को खोलता है लेकिन कुछ रिमोट एक्सेस जोखिम हैं जिनके बारे में हम सभी को अवगत होना चाहिए। यह आल