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

प्रतिस्पर्धी कोडिंग के लिए पायथन सबसे उपयुक्त क्यों है

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

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

प्रतिस्पर्धी प्रोग्रामिंग कहलाने वाले समस्या कथन का उदाहरण हो सकता है -

आपको लंबाई n की एक स्ट्रिंग दी जाती है जिसमें केवल लोअरकेस लैटिन अक्षर होते हैं।

एक स्ट्रिंग का एक विकल्प उस स्ट्रिंग का एक सन्निहित अनुवर्ती है। तो, स्ट्रिंग "बल" स्ट्रिंग "कोडफोर्स" का एक विकल्प है, लेकिन स्ट्रिंग "कोडर" नहीं है।

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

यह गारंटी है कि s में कम से कम दो अलग-अलग वर्ण हैं।

ध्यान दें कि आप पूरी स्ट्रिंग को हटा सकते हैं और यह सही है। साथ ही, ध्यान दें कि आपको कम से कम एक वर्ण हटा देना चाहिए।

उपरोक्त समस्या को हल करने के लिए, आप अपनी पसंद की किसी भी प्रोग्रामिंग भाषा का उपयोग कर सकते हैं।

अब सवाल उठता है कि प्रतिस्पर्धी कोडिंग के लिए पायथन ही क्यों?

गति

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

क्योंकि इस तरह की प्रतियोगिता में समय महत्वपूर्ण है, प्रोग्रामर जितनी तेजी से समाधान लिख सकता है, वह उतना ही बेहतर है। तो, ऊपर की गति से मेरा मतलब उस गति से है जिसके साथ एक प्रोग्रामर समाधान लिखता है, न कि पायथन भाषा की गति।

पुस्तकालयों की विशाल विविधता

पायथन मानक पुस्तकालयों की एक विशाल विविधता के साथ आता है और इन पुस्तकालयों का प्रतिस्पर्धी प्रोग्रामिंग में बहुत अच्छी तरह से उपयोग किया जा सकता है।

प्रतिस्पर्धी कोडिंग के लिए अजगर को चुनने के अन्य सामान्य कारणों की सूची नीचे दी गई है -

i.आम अंतर्निर्मित कार्य:

  • पायथन काउंट, मिन, मैक्स, सॉर्टेड आदि जैसे सामान्य कार्यों का एक बड़ा सेट प्रदान करता है। ये इनबिल्ट फ़ंक्शन बहुत काम आते हैं, कोडर्स को आसानी से आगे बढ़ने की अनुमति देते हैं और इन तुच्छ प्रक्रियाओं के लिए कोड लिखना छोड़ देते हैं जो अक्सर बहुत उपयोगी होता है। इसके अलावा, पायथन फ़ंक्शन अपने कार्यों के लिए सर्वोत्तम एल्गोरिदम का उपयोग करते हैं। उदाहरण के लिए, सॉर्ट किया गया () फ़ंक्शन टिमसॉर्ट एल्गोरिथ्म का उपयोग करता है, जो O (nlogn) के सबसे खराब स्थिति प्रदर्शन पर स्थिर छँटाई प्रदान करता है। यह सबसे अच्छे सॉर्टिंग एल्गोरिदम में से एक है जो ओ (1) या निरंतर रन टाइम का सर्वोत्तम केस रन टाइम प्रदान करता है।

कोड

#abs()
print(abs(-7))
#max()
print(max(2, 13, 4, 20))
#memoryview()
print(memoryview(bytes(9)))
#object()
o = object();print(type(o))
#pow()
print(pow(2,6))
#reversed
a = reversed([3, 13, 2, 1]); print(a)
#sorted()
print(sorted([9, 2, 4, 13, 7]))
#sum()
print(sum([2, 9, 12, 19]))
# type()
print (type([]))
print (type({}))
#zip()
print(set(zip([1,2],[3,4,5])))

<मजबूत> ii. सूची समझ

  • पायथन सर्वश्रेष्ठ सूची समझ प्रदान करता है। यह हमें कोड लिखने की अनुमति देता है जो आम तौर पर 1 लाइन में 5-20 लाइनें लेता है। सूची समझ के साथ, आपके पास नेस्टेड लूप और शर्तें हो सकती हैं

कोड

# Iterating through a string Using List Comprehension
l_string = [ letter for letter in 'Tutorialspoint' ]
print( l_string)
#List Comprehensions vs Lambda functions
l_lambda = list(map(lambda x: x, 'Tutorialspoint'))
print(l_lambda)

आउटपुट

['T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't']
['T', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't']

iii.मानक पुस्तकालय (बड़ा लाभ)

  • पायथन एक बहुत व्यापक मानक पुस्तकालय के साथ आता है, जो सुविधाओं की एक विस्तृत श्रृंखला पेश करता है। ये पुस्तकालय कई डेटा संरचनाओं के साथ आते हैं जो उन्हें मैन्युअल रूप से लागू करने की आवश्यकता को समाप्त करते हैं और साथ ही itertools जो पुस्तकालय का एक बहुत ही महत्वपूर्ण हिस्सा हैं।
  • उदाहरण के लिए, आप एक सूची के सभी संभावित क्रमपरिवर्तन को उत्पन्न करना चाहते हैं और इसे अन्य एकल सूची में संग्रहीत करना चाहते हैं, सूची समझ और क्रमपरिवर्तन फ़ंक्शन का उपयोग itertools से करते हैं।

पायथन मानक पुस्तकालय

<टीडी>स्ट्रिंग्स
<टीडी>संपीड़न
<टीडी>जीयूआई
<टीडी>एफ़टीपी
<टीडी>एक्सएमएल
डेटा प्रकार
नेटवर्किंग
धागे
ऑपरेटिंग सिस्टम
तर्क
सीजीआई
जटिल संख्याएं
क्रिप्टोग्राफी
परीक्षण
मल्टीमीडिया
डेटाबेस
सीएसवी फ़ाइलें
कैलेंडर
ईमेल
क्रमबद्ध करना

iv.डेटा संरचनाओं की विशाल विविधता

  • पायथन आपके कोडिंग में उपयोग करने के लिए डेटा संरचना का एक बड़ा सेट प्रदान करता है जिसमें डिक्शनरी, सेट, टपल, सूची और कई अन्य शामिल हैं जो मानक पैकेज के रूप में आते हैं।

प्रतिस्पर्धी कोडिंग के लिए पायथन सबसे उपयुक्त क्यों है

v.उपयोग में आसानी

पायथन सिंटैक्स मानव पठनीय है और पायथन में कोडिंग करना बहुत आसान और तेज़ है। यह मूल रूप से स्यूडोकोड की तरह पढ़ता है।

>>> print("hello world!")
hello world!
>>> sum([3, 4, 3,5])
15
>>> max(3, 4, 5, 13,2)
13
>>> min(3, 4, 5, 13, 2)
2

  1. C++ में प्रतिस्पर्धी कोडिंग के लिए BFS STL का उपयोग कर रहा है?

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

  1. पायथन में सेवा केंद्र के लिए सर्वोत्तम स्थान खोजने का कार्यक्रम

    मान लीजिए कि हमारे पास पदों की एक सूची है, जिसमें समन्वय बिंदुओं की एक सूची है जहां कुछ घर स्थित हैं। यदि आप (xc, yc) पर एक सेवा केंद्र बनाना चाहते हैं, तो किसी दिए गए बिंदु से (xc, yc) तक यूक्लिडियन दूरी का योग न्यूनतम है। इसलिए हमें न्यूनतम दूरी का योग ज्ञात करना होगा। इसलिए, यदि इनपुट स्थिति की

  1. पायथन में पैटर्न कैसे प्रिंट करें?

    नेस्टेड फॉर लूप्स का उपयोग करके पायथन में पैटर्न मुद्रित किए जा सकते हैं। बाहरी लूप का उपयोग पंक्तियों की संख्या के माध्यम से पुनरावृति करने के लिए किया जाता है जबकि आंतरिक लूप का उपयोग स्तंभों की संख्या को संभालने के लिए किया जाता है। आवश्यकता के अनुसार विभिन्न पैटर्न बनाने के लिए प्रिंट स्टेटमेंट