Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. โปรแกรมสร้างโครงสร้างข้อมูลรองรับการหาผลรวมช่วง (Range Sum) ใน Python

    สมมติว่าเราต้องการพัฒนาโครงสร้างข้อมูลที่สร้างขึ้นพร้อมกับลิสต์จำนวนเต็ม และมีฟังก์ชันสำหรับหาผลรวมขององค์ประกอบจากดัชนี i ถึง j-1 อย่างมีประสิทธิภาพ มีฟังก์ชันสองฟังก์ชัน: Constructor สร้างอินสแตนซ์ใหม่พร้อมอาร์เรย์จำนวนเต็ม get_sum(i, j) คืนผลรวมของอิลีเมนต์อาร์เรย์จากดัชนีเริ่มต้น i ถึงดัชนีสิ้น

  2. โปรแกรมสร้างโครงสร้างข้อมูลตรวจสอบอัตราการร้องขอ (Rate Limiting) ใน Python

    สมมติว่าเราต้องการพัฒนาโครงสร้างข้อมูลที่สร้างขึ้นพร้อมกับเวลาหมดอายุ (expire time) และรองรับฟังก์ชันที่รับรหัสผู้ใช้ (user_id) และ timestamp ฟังก์ชันนี้จะตรวจสอบว่าคำร้องขอของผู้ใช้ในเวลาที่กำหนดล้มเหลวหรือไม่ จะล้มเหลวก็ต่อเมื่อผู้ใช้เคยมีคำร้องขอที่สำเร็จภายในเวลาหมดอายุที่กำหนด เช่น ถ้าอินพุตคื

  3. โปรแกรมนับจำนวนการดำเนินการเพื่อกำจัดบิตติดกัน 3 ตัวที่เหมือนกันใน Python

    สมมติว่าเรามีสตริงไบนารี s พิจารณาการดำเนินการที่เลือกบิตหนึ่งและพลิกค่าจาก 0 เป็น 1 หรือ 1 เป็น 0 เราต้องหาจำนวนการดำเนินการขั้นต่ำเพื่อให้ได้สตริงที่ไม่มีบิตติดกัน 3 ตัวที่เหมือนกัน เช่น ถ้าอินพุตคือ s = 10011100 ผลลัพธ์จะเป็น 1 เพราะสามารถพลิกบิตที่ดัชนี 4 จาก 1 เป็น 0 ได้ สตริงกลายเป็น 10010100

  4. โปรแกรมตรวจสอบว่าสตริงสองสตริงเป็นการหมุนของกันหรือไม่ใน Python

    สมมติว่าเรามีสตริงภาษาอังกฤษสองสตริง s และ t ซึ่งอาจประกอบด้วยตัวพิมพ์เล็กและ/หรือตัวพิมพ์ใหญ่ เราต้องตรวจสอบว่าสตริงหนึ่งเป็นการหมุน (rotation) ของอีกสตริงหนึ่งหรือไม่ เช่น ถ้าอินพุตคือ s = koLKAta และ t = KAtakoL ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา ถ้าความยาวของ s และ t ไม่เท่ากัน ให้คืน Fals

  5. โปรแกรมสร้างคลาสอิเทอเรเตอร์ถอดรหัส Run-Length ใน Python

    สมมติว่าเราต้องการสร้างคลาสอิเทอเรเตอร์ที่รับสตริงที่เข้ารหัสแบบ Run-Length (RLE) เช่น s คลาสนี้มีเมธอดสองเมธอด: next() - คืนค่าองค์ประกอบถัดไปในอิเทอเรเตอร์ hasnext() - ตรวจสอบว่ามีองค์ประกอบถัดไปหรือไม่ เช่น ถ้าอินพุตคือ s = 2b1a แล้วสร้างอ็อบเจกต์ แล้วเรียก next(), hasnext(), next(), next(), h

  6. โปรแกรมตรวจสอบว่าทุกคนสามารถนั่งได้หรือไม่ใน Python

    สมมติว่าเรามีตัวเลข n แทนจำนวนคนที่กำลังหาที่นั่ง และมีรายการบิตที่ 1 แทนที่นั่งที่มีคนนั่งแล้ว ส่วน 0 แทนที่นั่งว่าง สองคนไม่สามารถนั่งติดกันได้ เราต้องตรวจสอบว่าทุกคน n คนสามารถหาที่นั่งได้หรือไม่ เช่น ถ้าอินพุตคือ n = 2 และ seats = [1, 0, 0, 0, 1, 0, 0] ผลลัพธ์จะเป็น True เพราะสามารถนั่งที่ดัชนี

  7. โปรแกรมกำหนดโครงสร้างข้อมูลเซตโดยไม่ใช้คลาส set ของไลบรารีใน Python

    สมมติว่าเราต้องการนำโครงสร้างข้อมูลเซต (Set) มาใช้ด้วยเมธอดต่อไปนี้: Constructor สร้างอินสแตนซ์เซตใหม่ add(val) แทรกจำนวนเต็ม val เข้าเซต exists(val) ตรวจสอบว่า val อยู่ในเซตหรือไม่ remove(val) ลบ val ออกจากเซต เช่น ถ้าสร้างเซต s เรียก s.add(10), s.add(20), s.add(10), s.exists(10), s.remove(10), s

  8. โปรแกรมตรวจสอบว่าการหมุนขวาสร้างอาร์เรย์เพิ่มหรือลดของจำนวนธรรมชาติ n ตัวแรกได้หรือไม่ใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums มี n สมาชิก เราต้องตรวจสอบว่าสามารถสร้างรายการจำนวนธรรมชาติ n ตัวแรก เรียงเพิ่ม [1, 2, ..., n] หรือลด [n, n-1, ..., 1] ได้โดยการเลื่อน nums ไปขวา จำนวนครั้งเท่าไรก็ได้ หรือไม่ เช่น ถ้าอินพุตคือ nums = [5, 6, 1, 2, 3, 4] ผลลัพธ์จะเป็น True เพราะเลื่อนขวา 4 ครั้ง ได้

  9. โปรแกรมหาความยาวสับลิสต์สั้นที่สุดที่มีสมาชิกบ่อยที่สุดเท่ากับรายการเต็มใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums ถ้าความถี่ของตัวเลขที่พบบ่อยที่สุดใน nums คือ k เราต้องหาความยาวของสับลิสต์สั้นที่สุด ที่ความถี่ของสมาชิกที่พบบ่อยที่สุดในสับลิสต์นั้นก็เท่ากับ k ด้วย เช่น ถ้าอินพุตคือ nums = [10, 20, 30, 40, 30, 10] ผลลัพธ์จะเป็น 3 เพราะตัวเลขที่พบบ่อยสุดคือ 10 และ 30 ที่นี่ k =

  10. โปรแกรมสร้างตัวเลขน้อยที่สุดที่ไม่มีเลขติดกันซ้ำใน Python

    สมมติว่าเรามีสตริง s ที่มี 4 ตัวอักษรที่เป็นไปได้ 1, 2, 3 และ ? เราสามารถวาง 1, 2 หรือ 3 แทน ? ได้ เราต้องหาตัวเลขน้อยที่สุดที่เป็นไปได้ ที่ไม่มีสองหลักติดกันเหมือนกัน เช่น ถ้าอินพุตคือ s = 2??3? ผลลัพธ์จะเป็น 21231 ขั้นตอนการแก้ปัญหา i := 0, s := รายการจาก s ถ้า ขนาดของ s < 2 และ s[i] == ? คืนค่า

  11. โปรแกรมหาผลรวมคู่น้อยที่สุดที่ระยะห่างไม่ติดกันใน Python

    สมมติว่าเรามีรายการตัวเลข ให้พิจารณาคู่ดัชนี (i, j) ที่ i < j และ 1 หาผลรวมคู่ที่น้อยที่สุด เช่น ถ้าอินพุตคือ nums = [3, 4, 2, 2, 4] ผลลัพธ์จะเป็น 5 สามารถเลือก 3 และ 2 ผลรวม 5 ไม่สามารถเลือก 2 และ 2 เพราะติดกัน違反 1 ขั้นตอนการแก้ปัญหา n := ขนาดของ nums min_seen := nums[0], ans := inf สำหรับ i ในช

  12. โปรแกรมจัดเรียงตัวเลขตามจำนวนบิต 1 ในการแทนค่าบाइनนารีใน Python

    สมมติว่าเรามีรายการตัวเลข nums เราต้องจัดเรียงรายการจากน้อยไปมากตามจำนวนบิต 1 ในการแทนค่าบाइनนารีของแต่ละตัวเลข หากตัวเลขสองตัวมีจำนวนบิต 1 เท่ากัน ให้จัดเรียงตามค่าตัวเลข เช่น ถ้าอินพุตคือ nums = [4, 1, 12, 7, 6] ผลลัพธ์จะเป็น [1, 4, 6, 12, 7] เพราะ: ไบนารีของ 4 คือ 0100 (1 บิต) ไบนารีของ 1 คือ 00

  13. โปรแกรมหารายการกำลังสองเรียงลำดับใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums เรียงจากน้อยไปมาก เราต้องยกกำลังสองสมาชิกและคืนค่าผลลัพธ์เรียงลำดับ เช่น ถ้าอินพุตคือ nums = [-8, -3, 0, 5, 6] ผลลัพธ์จะเป็น [0, 9, 25, 36, 64] ขั้นตอนการแก้ปัญหา n := ขนาดของ nums l := 0, r := n - 1, index := n - 1 res := รายการขนาดเท่า nums เติม 0 ในขณะที่ = 0:

  14. โปรแกรมตรวจสอบว่ารายการสลับเพิ่มลดหรือไม่ใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums เราต้องตรวจสอบว่ารายการสลับกันระหว่างเพิ่มขึ้นอย่างเคร่งครัด (strictly increasing) แล้วลดลงอย่างเคร่งครัด (strictly decreasing) แล้วเพิ่มขึ้นอีก และต่อไป และถ้ารายการเพิ่มขึ้นอย่างเคร่งครัดอย่างเดียว ก็ถือว่าถูกต้อง เช่น ถ้าอินพุตคือ nums = [2, 4, 8, 7, 5, 1, 5, 7,

  15. โปรแกรมตรวจสอบว่าสตริงที่พิมพ์เป็นการเขียนสตริงเป้าหมายกับคีย์บอร์ดติดหรือไม่ใน Python

    สมมติว่าเรามีสตริงสองตัว s และ t เราต้องการสร้าง t แต่คีย์บอร์ดมีปัญหาบางตัวอักษรติด จึงอาจพิมพ์ซ้ำ 1 ครั้งหรือมากกว่า เราต้องตรวจสอบว่า s ที่พิมพ์ออกมาอาจเป็นการตั้งใจเขียน t หรือไม่ เช่น ถ้าอินพุตคือ s = appppleee, t = apple ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา i := 0, j := 0 s_len := ขนาดของ s,

  16. โปรแกรมหาผลรวมของจำนวนคี่ N ตัวแรกใน Python

    สมมติว่าเรามีตัวเลข n เราต้องหาผลรวมของจำนวนคี่บวก n ตัวแรก เช่น ถ้าอินพุตคือ n = 10 ผลลัพธ์จะเป็น 100 เพราะจำนวนคี่ 10 ตัวแรกคือ [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] ผลรวมคือ 100 ขั้นตอนการแก้ปัญหา มีข้อสังเกตที่ดี: ผลรวมของจำนวนคี่ n ตัวแรก เสมอเท่ากับ n^2 (กำลังสองของ n) ดังนั้นเพื่อหาผลลัพธ์ ให้

  17. โปรแกรมสร้างโครงสร้างข้อมูลตรวจสอบคู่ที่ผลรวมเท่ากับค่าที่กำหนดใน Python

    สมมติว่าเราต้องการสร้างโครงสร้างข้อมูลที่มีสองเมธอด: add(val) เพิ่มค่า val เข้าโครงสร้างข้อมูล find(val) ตรวจสอบว่ามีสองสมาชิกที่ผลรวมเท่ากับ val หรือไม่ เราต้องออกแบบให้ได้ผลลัพธ์ทันที ไม่ต้องค้นหาทุกครั้งที่มีคิวรี่ เช่น ถ้าสร้างออบเจกต์ obj เพิ่มตัวเลข 6, 14, 3, 8, 11, 15 แล้วตรวจสอบ obj.find(9

  18. โปรแกรมหาผลรวมสองจำนวนที่น้อยกว่าเป้าหมายใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums และค่าเป้าหมาย target เราต้องหาผลรวมของคู่ตัวเลขที่ใหญ่ที่สุดใน nums ที่ผลรวมไม่เกิน target - 1 เช่น ถ้าอินพุตคือ nums = [8, 3, 4, 9, 2], target = 8 ผลลัพธ์จะเป็น 7 เพราะคู่ที่ใหญ่ที่สุดน้อยกว่า 8 คือ 4 + 3 = 7 ขั้นตอนการแก้ปัญหา เรียงลำดับ nums p1 := 0, p2 := ขนา

  19. โปรแกรมตรวจสอบว่าผลรวมสองจำนวนเท่ากับ k จากรายการเรียงลำดับหรือไม่ใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums เรียงลำดับจากน้อยไปมาก เรายังมีค่า k ต้องตรวจสอบว่ามีสองสมาชิกในรายการที่บวกกันได้ k หรือไม่ ตัวเลขอาจเป็นลบหรือศูนย์ ต้องแก้ปัญหาแบบใช้พื้นที่คงที่ (constant space) เช่น ถ้าอินพุตคือ nums = [-8, -3, 2, 7, 9], k = 4 ผลลัพธ์จะเป็น True เพราะ 7 + (-3) = 4 เท่ากับ k ข

  20. โปรแกรมตรวจสอบว่าสองสตริงเท่ากันได้ด้วยการสลับตัวอักษรหรือไม่ใน Python

    สมมติว่าเรามีสตริงพิมพ์เล็กสองตัว s และ t ความยาวเท่ากัน เราสามารถเลือกตัวอักษรหนึ่งจาก s และอีกตัวจาก t แล้วสลับกัน ได้ทำซ้ำได้ไม่จำกัดครั้ง ต้องตรวจสอบว่าสามารถทำให้สตริงทั้งสองเหมือนกันได้หรือไม่ เช่น ถ้าอินพุตคือ s = abcd, t = cdab ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา fre := รายการความถี่ของแต

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:387/451  20-คอมพิวเตอร์/Page Goto:1 381 382 383 384 385 386 387 388 389 390 391 392 393