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

    คำอธิบายโจทย์ ให้รายการตัวเลข nums และค่า k ต้องการหาค่าเฉลี่ยสูงสุดของสับลิสต์ (subarray ต่อเนื่อง) ใดๆ ที่มีความยาว ≥ k ตัวอย่าง nums = [2, 10, -50, 4, 6, 6], k = 3 → เอาต์พุต: 5.333... (จากสับลิสต์ [4, 6, 6]) วิธีแก้ปัญหา ใช้ Binary Search บนคำตอบ (ค่าเฉลี่ย) + Prefix Sum + Sliding Window: Bin

  2. โปรแกรมหาเกาะใหญ่สุดหลังเปลี่ยนเซลล์น้ำหนึ่งเซลล์เป็นที่ดินใน Python

    คำอธิบายโจทย์ ให้เมทริกซ์ไบนารี 1 = ที่ดิน, 0 = น้ำ เกาะคือกลุ่ม 1 ที่ติดกัน (4 ทิศทาง) ถูมน้ำหรือขอบล้อมรอบ สามารถเปลี่ยนเซลล์น้ำสูงสุด 1 เซลล์เป็นที่ดิน หาขนาดเกาะใหญ่สุดที่เป็นไปได้ ตัวอย่าง เมทริกซ์: 101 000 110 111 เอาต์พุต: 7 (เปลี่ยนเซลล์กลางให้เชื่อมเกาะสองอัน) วิธีแก้ปัญหา Flood fill

  3. โปรแกรมสร้าง Least Frequently Used (LFU) Cache ใน Python

    คำอธิบายโจทย์ ต้องการสร้างโครงสร้างข้อมูล LFU Cache รองรับการดำเนินการ: get(key) - คืนค่าของ key ถ้ามีใน cache มิฉะนั้นคืน -1 set(key, value) - เพิ่ม/อัปเดต key-value pair เมื่อ cache เต็ม ต้องลบรายการที่ใช้บ่อยน้อยที่สุด (least frequently used) ก่อน แล้วค่อยเพิ่มรายการใหม่ ตัวอย่าง LFUCache(capa

  4. โปรแกรมหาความต่างสูงสุดระหว่างตัวเลขกับตัวเลขที่น้อยกว่าถัดไปใน Python

    คำอธิบายโจทย์ ให้รายการตัวเลข nums ต้องการหาความต่างสูงสุดระหว่างตัวเลขใดตัวเลขหนึ่งกับตัวเลขที่น้อยกว่ามันที่สุด (next smaller number) โดยต้องแก้ในเวลา O(n) ตัวอย่าง nums = [14, 2, 6, 35, 12] → เอาต์พุต: 21 (จาก 35 - 14 = 21) วิธีแก้ปัญหา ใช้ Bucket Sort / Pigeonhole Principle: หาค่า min_val และ

  5. โปรแกรมหาผลรวมสี่เหลี่ยมผืนผ้าที่มีผลรวมไม่เกิน k ใน Python

    คำอธิบายโจทย์ ให้เมทริกซ์ 2D และค่า k ต้องการหาผลรวมสูงสุดของสี่เหลี่ยมผืนผ้าใดๆ ที่มีผลรวม ≤ k ตัวอย่าง เมทริกซ์: 5-2 710 k = 15 เอาต์พุต: 12 (จากสี่เหลี่ยม [5, 7] ผลรวม = 12) วิธีแก้ปัญหา ใช้เทคนิค Prefix Sum 2D ร่วมกับ Binary Search / Ordered Set: фиกซ์แถวบน (i1) และแถวล่าง (i2) คำนวณผลรวม

  6. โปรแกรมนับจำนวนเกาะจากการเพิ่มบล็อกที่ดินทีละอันใน Python

    คำอธิบายโจทย์ สมมติว่ามีกริดน้ำขนาดอันตราย เราสามารถเพิ่มบล็อกที่ดินเข้าไปทีละอัน ได้รับรายการพิกัดชื่อ land_requests โดยแต่ละพิกัดเป็น [r, c] (r = แถว, c = คอลัมน์) ต้องหา list ที่แต่ละสมาชิกแสดงจำนวนเกาะที่มีอยู่หลังจากเพิ่มบล็อกที่ดินแต่ละอันจาก land_requests ตัวอย่าง อินพุต: land_requests = [[1

  7. โจทย์การหาจำนวนเหรียญสูงสุดที่สามารถเก็บได้ใน Python

    คำอธิบายโจทย์ สมมติว่าเรามีเมทริกซ์ 2D ที่แต่ละเซลล์แสดงจำนวนเหรียญในเซลล์นั้น มีผู้เก็บเหรียญ 2 คน วางอยู่ที่มุมซ้ายบนและมุมขวาบนในตอนเริ่มต้น พวกเขาต้องปฏิบัติตามกฎต่อไปนี้: จากเซลล์ (i, j) ผู้เก็บเหรียญสามารถเคลื่อนที่ไปยังเซลล์ (i + 1, j - 1), (i + 1, j), หรือ (i + 1, j + 1) เมื่อถึงเซลล์ใดเซลล

  8. โปรแกรมหาจำนวนการกระโดดขั้นต่ำเพื่อถึงค่าที่มี parity ต่างกันใน Python

    ให้ลิสต์ nums จากดัชนี i กระโดดไป i + nums[i] หรือ i - nums[i] ได้ หาจำนวนกระโดดน้อยที่สุดจากแต่ละดัชนี เพื่อถึงค่าที่ parity (คู่/คี่) ต่างจากจุดเริ่มต้น หากไม่ถึงได้ให้ -1 ตัวอย่าง: [7, 3, 4, 5, 6, 9, 6, 7] → [-1, 1, 2, -1, -1, -1, 1, -1] อัลกอริธึม BFS จากแต่ละดัชนี สำหรับแต่ละดัชนี เริ่ม BFS หา

  9. โปรแกรมหาลำดับที่มีความถี่เท่ากันหลังลบตัวเลขหนึ่งใน Python

    ให้ลิสต์ตัวเลข หาความยาว prefix ยาวที่สุด ที่เมื่อลบตัวเลข 1 ตัวออก จะทำให้ทุกตัวเลขที่เหลือมีความถี่เท่ากัน ตัวอย่าง: [2, 4, 4, 7, 7, 6, 6] → 7 (ลบ 2 ออก เหลือ 4,4,7,7,6,6 ทุกตัวมีความถี่ 2) อัลกอริธึม ใช้ num_freq นับความถี่แต่ละตัวเลข ใช้ freq_freq นับว่ามีตัวเลขกี่ตัวที่มีความถี่เท่ากัน ใช้ dif

  10. โปรแกรมคำนวณความน่าจะเป็นของการได้คะแนนไม่เกิน n ใน Python

    เกมสุ่มคะแนน: เริ่ม 0 คะแนน สุ่มเลข 1 ถึง h ได้คะแนนเท่านั้น หยุดเมื่อได้คะแนน ≥ k หาความน่าจะเป็นที่คะแนนสุดท้าย ≤ n ตัวอย่าง: n=2, k=2, h=10 → 0.11 อัลกอริธึม DP แบบ Top-down ฟังก์ชัน dp(path) คืนความน่าจะเป็นจากคะแนนสะสม path n → 0; path≥k → 1 Recurrence: dp(path+1) - (dp(path+h+1) - dp(path+1))

  11. โปรแกรมหาจำนวนการเคลื่อนที่ขั้นต่ำเพื่อถึงเป้าหมายใน Python

    รถอยู่ที่ตำแหน่ง 0 ความเร็ว 1 ทำได้ 2 การกระทำ: เร่ง (position += speed, speed *= 2) หรือ เลี้ยวกลับ0 ไม่อย่างนั้น speed=1) หาจำนวนการกระทำน้อยที่สุดเพื่อถึง target ตัวอย่าง: target=10 → 7 ครั้ง อัลกอริธึม DFS + Pruning คำนวณ hi เป็นกำลังสองที่มากกว่า target DFS ลองทุกกรณี: ไม่ทำอะไร, เร่ง 1 ครั้ง,

  12. โปรแกรมกลับลำดับย่อยสตริงภายในวงเล็บใน Python

    ให้สตริงที่มีตัวอักษรพิมพ์เล็กและวงเล็บ ต้องการกลับลำดับตัวอักษรภายในวงเล็บทุกคู่ แบบ recursive ตัวอย่าง: back(aps)ce → backspace วิธีแก้ สร้าง map close เก็บคู่ของวงเล็บเปิด-ปิดโดยใช้ stack ฟังก์ชัน trav เดินผ่านสตริง: เมื่อเจอวงเล็บ ให้เรียกตัวเองแบบ recursive พร้อมกลับทิศทาง รวบรวมตัวอักษรที่ไม่

  13. โปรแกรมหาย่อยสตริงที่สั้นที่สุดซึ่งมีสตริงเฉพาะเป็น subsequence ใน Python

    ให้สตริง S และ T ต้องการหาย่อยสตริงสั้นที่สุดใน S ที่ทำให้ T เป็น subsequence ของมัน หากไม่มีให้คืนสตริงว่าง หาหลายค่าให้เลือกตัวซ้ายสุด ตัวอย่าง: S = abcbfbghfb, T = fg → ผลลัพธ์ fbg อัลกอริธึม (Dynamic Programming) สร้างอาร์เรย์ dp ขนาด N (ความยาว S) เริ่มต้นค่า infinity สำหรับตัวอักษรแรกของ T: ถ

  14. Python - แปลงรายการพจนานุกรมซ้อนกันเป็น DataFrame ของ Pandas

    ข้อมูลจากแหล่งต่างๆ มักอยู่ในรูปแบบ JSON หรือ CSV ซึ่งแปลงเป็น list/dict ของ Python ได้ แต่เพื่อวิเคราะห์ด้วย Pandas ต้องแปลงเป็น DataFrame บทความนี้แสดงวิธีแปลง list ที่มี nested dictionary ให้เป็น DataPath แล้วใช้ pivot_table จัดรูปแบบใหม่ ตัวอย่างพื้นฐาน import pandas as pd data = [ {

  15. Python - AnchorLayout ใน Kivy

    AnchorLayout วางวิดเจ็ตที่ขอบของพื้นที่ (ซ้าย/ขวา/กลาง แนวนอน และ บน/ล่าง/กลาง แนวตั้ง) ตัวอย่างนี้สร้างปุ่ม 2 ปุ่ม วางไว้ที่มุมต่างกัน แล้วนำมาใส่ใน BoxLayout ตัวอย่างโค้ด from kivy.app import App from kivy.uix.anchorlayout import AnchorLayout from kivy.uix.boxlayout import BoxLayout from kivy.uix.

  16. Python - วิดเจ็ต BoxLayout ใน Kivy

    BoxLayout ใน Kivy ช่วยจัดวางวิดเจ็ตในแนวนอนหรือแนวตั้งได้อย่างยืดหยุ่น ตัวอย่างนี้สร้าง UI ที่มีปุ่มหลายตัว จัดกลุ่มด้วย BoxLayout ซ้อนกัน พร้อมกำหนดสีและขนาดต่างกัน ตัวอย่างโค้ด import kivy from kivy.app import App from kivy.uix.button import Button from kivy.uix.boxlayout import BoxLayout class B

  17. Python - การจัดการเหตุการณ์ปุ่มใน Kivy

    Kivy เป็นไลบรารี Python โอเพนซอร์สสำหรับพัฒนาแอปพลิเคชันที่มี UI นวัตกรรม เช่น แอปมัลติทัช ใช้ได้ทั้ง Android และ Desktop บทความนี้แสดงวิธีจัดการเหตุการณ์เมื่อกดปุ่ม ตัวอย่างโค้ด from kivy.app import App from kivy.uix.label import Label from kivy.uix.button import Button from kivy.uix.boxlayout impo

  18. เข้ารหัสและถอดรหัสข้อมูล MIME quoted-printable ด้วย Python

    เมื่อต้องจัดการข้อมูลที่มีอักขระนอกเหนือจาก ASCII มาตรฐาน เช่น อีเมลในภาษาต่างประเทศ Python มีโมดูลที่รองรับ MIME (Multipurpose Internet Mail Extensions) เพื่อจัดการการเข้ารหัสและถอดรหัส quoted-printable การใช้งานแพ็กเกจ email แพ็กเกจ email มีโมดูล mime และ charset ที่ช่วยเข้ารหัส/ถอดรหัสได้ ตัวอย่า

  19. เข้ารหัสและถอดรหัสไฟล์ uuencode ด้วย Python

    การเข้ารหัสและถอดรหัสไฟล์เป็นสิ่งที่พบได้บ่อยในการถ่ายโอนไฟล์ ไม่ว่าจะเป็นเพื่อการเข้ารหัส การบีบอัด หรือเพื่อให้เข้ากับระบบปฏิบัติการหรือโปรแกรมอ่านไฟล์ที่ต่างกัน โมดูล uu ใน Python ช่วยให้ทำทั้งสองอย่างได้ง่ายดาย เข้ารหัสไฟล์ ในตัวอย่างนี้เราจะใช้รูปภาพสำหรับการเข้ารหัส และนำกลับมาถอดรหัสเพื่อตรวจ

  20. เข้ารหัสและถอดรหัสข้อมูล XDR ด้วยโมดูล xdrlib ของ Python

    External Data Representation (XDR) เป็นรูปแบบมาตรฐานสำหรับการแลกเปลี่ยนข้อมูลระหว่างระบบที่แตกต่างกัน โดยเฉพาะเมื่อต้องสร้างและถ่ายโอนโครงสร้างข้อมูลที่ซับซ้อน XDR ทำงานในชั้น Presentation ของโมเดล OSI ตัวอย่างการใช้งาน import xdrlib p = xdrlib.Packer() print(type(p)) lst = [1, 2, 3] p.pack_list(l

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:206/451  20-คอมพิวเตอร์/Page Goto:1 200 201 202 203 204 205 206 207 208 209 210 211 212