কম্পিউটার

প্রতিযোগিতামূলক কোডিংয়ের জন্য পাইথন কৌশল


বেশিরভাগ প্রতিযোগিতামূলক প্রোগ্রামিং চ্যালেঞ্জের জন্য কোডারদের মধ্যে পাইথন একটি পছন্দের ভাষা। পাইথন ব্যবহার করে বেশিরভাগ সমস্যা সহজেই যুক্তিসঙ্গত সময়ের মধ্যে গণনা করা হয়।

কিছু জটিল সমস্যার জন্য, দ্রুত-পর্যাপ্ত পাইথন কোড লেখা প্রায়ই একটি চ্যালেঞ্জ। নিচে কিছু পাইথনিক কোড কনস্ট্রাক্ট রয়েছে যা প্রতিযোগিতামূলক কোডিং-এ আপনার কোডের কর্মক্ষমতা উন্নত করতে সাহায্য করে −

1. স্ট্রিংস সংযুক্তি :নিচের গঠন ব্যবহার করবেন না।

str1 = ""
some_list = ["Welcome ", "To ", "Tutorialspoint "]
for x in some_list:
   str1 += x
print(str1)

উপরের পদ্ধতিটি অতিরিক্ত সময় দেয়৷ পরিবর্তে, এটি ব্যবহার করার চেষ্টা করুন (যোগদান পদ্ধতি) -

str1 = ""
some_list = ["Welcome ", "To ", "Tutorialspoint "]
print(str1.join(some_list))

২. মানচিত্র ফাংশন

সাধারণত, প্রতিযোগিতামূলক কোডিং-এ আপনার একটি ইনপুট থাকে, যেমন −

1234567

সহজভাবে সংখ্যার তালিকা হিসেবে পেতে

list(map (int, input().split()))

ইনপুটের প্রকার নির্বিশেষে সর্বদা ইনপুট() ফাংশন ব্যবহার করুন এবং তারপর মানচিত্র ফাংশন ব্যবহার করে রূপান্তর করুন।

>>> list(map(int, input("enter numbers:").split()))
enter numbers:1 2 3 4 5 6 7
[1, 2, 3, 4, 5, 6, 7]
>>>

মানচিত্র ফাংশনটি পাইথনের একটি সুন্দর অন্তর্নির্মিত ফাংশন, যা অনেক সময় কাজে আসে। জানার মত।

3. সংগ্রহ মডিউল

যদি আমরা একটি তালিকা থেকে সদৃশ অপসারণ করতে চাই। জাভার মতো অন্যান্য ভাষায় আপনাকে হ্যাশম্যাপ বা অন্য কোনো অদ্ভুত উপায়ে ব্যবহার করতে হতে পারে, তবে পাইথোতে এটি সহজভাবে

>>> print(list(set([1,2,3,4,3,4,5,6])))
[1, 2, 3, 4, 5, 6]

এছাড়াও, দুই বা ততোধিক তালিকা মার্জ করার সময়, তালিকায় extend() এবং append() ব্যবহার করতে সতর্ক থাকুন।

>>> a = [1, 2, 3,4] # list 1
>>> b = [5, 6, 7] # list 2
>>> a.extend(b)#gives one list
>>> a
[1, 2, 3, 4, 5, 6, 7]
>>> a.append(b) # gives list of list
>>> a
[1, 2, 3, 4, [5, 6, 7]]

4. ভাষা গঠন

ফাংশনের মধ্যে আপনার কোড লিখতে পারলে ভাল, যদিও পদ্ধতিগত কোড পাইথনে সমর্থিত।

def main():
   for i in range(2**3):
      print(x)
main()

থেকে অনেক ভালো
for x in range(2**3):
   print(x)

অন্তর্নিহিত Cpython বাস্তবায়নের কারণে গ্লোবালের তুলনায় স্থানীয় ভেরিয়েবল সংরক্ষণ করা দ্রুত।

5. স্ট্যান্ডার্ড লাইব্রেরি ব্যবহার করুন:

যতটা সম্ভব বিল্ট-ইন ফাংশন এবং স্ট্যান্ডার্ড লাইব্রেরি প্যাকেজ ব্যবহার করা ভাল। সেখানে, −

এর পরিবর্তে
newlist = []
for x in somelist:
   newlist.append(myfunc(x))

এটি ব্যবহার করুন -

newlist = map(myfunc, somelist)

একইভাবে, itertools (স্ট্যান্ডার্ড লাইব্রেরি) ব্যবহার করার চেষ্টা করুন, কারণ তারা একটি সাধারণ কাজের জন্য অনেক দ্রুত। উদাহরণস্বরূপ, আপনি কোডের কয়েকটি লাইন সহ লুপের জন্য পারমুটেশনের মতো কিছু থাকতে পারেন।

>>> import itertools
>>> iter = itertools.permutations(["a","b","c"])
>>> list(iter)
[('a', 'b', 'c'), ('a', 'c', 'b'), ('b', 'a', 'c'), ('b', 'c', 'a'), ('c', 'a', 'b'), ('c', 'b', 'a')]

6. জেনারেটর

আপনার লেখা কোডের মেমরি ফুটপ্রিন্ট এবং গড় সময়ের জটিলতা উভয়ই কমাতে জেনারেটর চমৎকার নির্মাণ।

def fib():
   a, b = 0, 1
   while 1:
      yield a
      a, b = b, a+b

  1. সহজ আগ্রহের জন্য পাইথন প্রোগ্রাম

  2. নির্বাচন সাজানোর জন্য পাইথন প্রোগ্রাম

  3. উইন্ডোজে পাইথন প্রোগ্রামিংয়ের জন্য IDE

  4. কেন পাইথন প্রতিযোগিতামূলক কোডিংয়ের জন্য সবচেয়ে উপযুক্ত