Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

เหตุใด python จึงเหมาะที่สุดสำหรับการเข้ารหัสการแข่งขัน


การเขียนโปรแกรมที่แข่งขันกันโดยทั่วไปจะเรียกว่าการเข้ารหัสเพื่อใช้ประโยชน์จากอัลกอริธึมที่มีประสิทธิภาพโดยใช้โครงสร้างข้อมูลที่เหมาะสม พวกเขาทดสอบทักษะของโปรแกรมเมอร์ในหลายระดับ

ด้วยความช่วยเหลือของอัลกอริธึมและโครงสร้างข้อมูล คุณต้องแก้ปัญหาการเขียนโปรแกรมสมมุติซึ่งเกิดขึ้นกับคุณโดยใช้ตรรกะต่างๆ คุณไม่เพียงแค่ต้องแก้ปัญหาเท่านั้น แต่คุณต้องคิดหาวิธีแก้ปัญหาที่มีประสิทธิภาพมาก ซึ่งก็คือมีเวลาที่ดีและมีความซับซ้อนในช่องว่าง

ตัวอย่างของคำชี้แจงปัญหาสำหรับสิ่งที่เรียกว่าโปรแกรมการแข่งขันอาจเป็น -

คุณจะได้รับสตริงที่มีความยาว n ซึ่งประกอบด้วยตัวอักษรละตินตัวพิมพ์เล็กเท่านั้น

สตริงย่อยของสตริงเป็นผลสืบเนื่องต่อเนื่องกันของสตริงนั้น ดังนั้นสตริง "forces" จึงเป็นสตริงย่อยของสตริง "codeforces" แต่สตริง "coder" ไม่ใช่สตริง

งานของคุณคือการคำนวณจำนวนวิธีในการลบหนึ่งสตริงย่อยจากสตริงนี้เพื่อให้อักขระที่เหลือทั้งหมดเท่ากัน (จำนวนอักขระที่แตกต่างกันอาจเป็นศูนย์หรือหนึ่ง)

รับประกันว่ามีอักขระอย่างน้อยสองตัวใน s

โปรดทราบว่าคุณสามารถลบสตริงทั้งหมดได้และถูกต้อง นอกจากนี้ โปรดทราบว่าคุณควรลบอักขระอย่างน้อยหนึ่งตัว

ในการแก้ปัญหาข้างต้น คุณสามารถใช้ภาษาโปรแกรมใดก็ได้ตามต้องการ

ทีนี้ก็เกิดคำถามขึ้นว่าทำไม python ถึงต้องเขียนโค้ดเพื่อการแข่งขัน

ความเร็ว

เหตุผลหนึ่งที่คุณควรเลือก python ก็คือ มันลดเวลาที่คุณใช้ในการเขียนโค้ดลงอย่างมาก แทนที่จะใช้เวลาคิดเกี่ยวกับตรรกะที่จำเป็นสำหรับคำถาม

เพราะในการแข่งขันประเภทนี้เวลาเป็นกุญแจสำคัญ เร็วขึ้น โปรแกรมเมอร์สามารถเขียนวิธีแก้ปัญหาได้ดีขึ้น ดังนั้น ความเร็วที่สูงกว่า ฉันหมายถึงความเร็วที่โปรแกรมเมอร์เขียนวิธีแก้ปัญหา ไม่ใช่ความเร็วของภาษาหลาม

ห้องสมุดที่หลากหลาย

Python มาพร้อมกับไลบรารีมาตรฐานที่หลากหลาย และไลบรารีเหล่านี้สามารถใช้งานได้ดีมากในการเขียนโปรแกรมเชิงแข่งขัน

ด้านล่างนี้คือรายการเหตุผลทั่วไปอื่นๆ ในการเลือก python สำหรับการเข้ารหัสที่แข่งขันได้ -

ฟังก์ชัน inbuilt ทั่วไป:

  • Python มีชุดฟังก์ชันทั่วไปจำนวนมาก เช่น count, min, max, sorted เป็นต้น ฟังก์ชัน inbuilt เหล่านี้มีประโยชน์มาก ช่วยให้ผู้เขียนโค้ดดำเนินการต่อไปได้อย่างง่ายดายและข้ามการเขียนโค้ดสำหรับขั้นตอนเล็กๆ น้อยๆ เหล่านี้ ซึ่งมักจะมีประโยชน์มาก นอกจากนี้ ฟังก์ชัน python ยังใช้อัลกอริธึมที่ดีที่สุดสำหรับฟังก์ชันต่างๆ ตัวอย่างเช่น ฟังก์ชัน sorted() ใช้อัลกอริธึม Timsort ซึ่งให้การเรียงลำดับที่เสถียรที่ประสิทธิภาพกรณีที่เลวร้ายที่สุดของ O(nlogn) นี่เป็นหนึ่งในอัลกอริธึมการเรียงลำดับที่ดีที่สุดที่ให้เวลารันเคสที่ดีที่สุดของ O(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. แสดงรายการความเข้าใจ

  • Python ให้ความเข้าใจรายการที่ดีที่สุดอย่างหนึ่ง ช่วยให้เราสามารถเขียนโค้ดซึ่งโดยทั่วไปจะใช้เวลา 5-20 บรรทัดใน 1 บรรทัด ด้วย List Comprehension คุณสามารถมีลูปและเงื่อนไขที่ซ้อนกันได้

รหัส

# 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.ห้องสมุดมาตรฐาน (ข้อได้เปรียบมาก)

  • Python มาพร้อมกับไลบรารีมาตรฐานที่กว้างขวางมาก มีสิ่งอำนวยความสะดวกมากมาย ไลบรารีเหล่านี้มาพร้อมกับโครงสร้างข้อมูลหลายแบบซึ่งช่วยลดความจำเป็นในการใช้งานด้วยตนเอง และยังมี itertools ซึ่งเป็นส่วนสำคัญของไลบรารี่
  • ตัวอย่างเช่น คุณต้องการสร้างการเรียงสับเปลี่ยนที่เป็นไปได้ทั้งหมดของรายการและจัดเก็บไว้ในรายการเดียว โดยใช้รายการทำความเข้าใจและฟังก์ชันการเรียงสับเปลี่ยนจาก itertools

ไลบรารีมาตรฐานของ Python

ประเภทข้อมูล
สตริง
เครือข่าย
กระทู้
ระบบปฏิบัติการ
การบีบอัด
GUI
ข้อโต้แย้ง
CGI
จำนวนเชิงซ้อน
FTP
การเข้ารหัส
กำลังทดสอบ
มัลติมีเดีย
ฐานข้อมูล
ไฟล์ CSV
ปฏิทิน
อีเมล
XML
การทำให้เป็นอนุกรม

iv.โครงสร้างข้อมูลที่หลากหลาย

  • Python มีชุดโครงสร้างข้อมูลขนาดใหญ่เพื่อใช้ในการเข้ารหัสของคุณ รวมถึงพจนานุกรม ชุด ทูเพิล รายการ และอื่นๆ อีกมากมายที่มาเป็นแพ็คเกจมาตรฐาน

เหตุใด python จึงเหมาะที่สุดสำหรับการเข้ารหัสการแข่งขัน

v.ใช้งานง่าย

ไวยากรณ์ของ Python นั้นมนุษย์สามารถอ่านได้และการเขียนโค้ดใน python นั้นง่ายและรวดเร็วมาก โดยพื้นฐานแล้วมันอ่านเหมือนรหัสเทียม

>>> 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