Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Path In Zigzag Labelled Binary Tree: หาเส้นทางใน Zigzag Tree

    โจทย์ Infinite Binary Tree ที่ label แบบ Zigzag: Row คี่ (1,3,5...): Label ซ้าย→ขวา (ปกติ) Row คู่ (2,4,6...): Label ขวา→ซ้าย (กลับกัน) กำหนด label ของโหนด หา path จาก root ไปยังโหนดนั้น ตัวอย่าง: label=14 → path=[1,3,4,14] Row 1: 1 Row 2: 3 2 Row 3: 4 5 6 7 Row 4: 15 14 13 12 11 10 9 8 ... Path

  2. Maximum Average Subtree: หา Subtree ที่มีค่าเฉลี่ยสูงสุด

    โจทย์ กำหนด Binary Tree หา Maximum Average ของ subtree ใดๆ (subtree = โหนด + ทุก descendants) Average = (ผลรวมค่าโหนดใน subtree) / (จำนวนโหนดใน subtree) ตัวอย่าง: 5 / \ 6 1 Subtree ที่ 5: (5+6+1)/3 = 4 Subtree ที่ 6: 6/1 = 6 ← max Subtree ที่ 1: 1/1 = 1 Output: 6.0 อัลกอริทึม: Post-or

  3. Lowest Common Ancestor of Deepest Leaves: LCA ของใบลึกสุด

    โจทย์ กำหนด Binary Tree หา Lowest Common Ancestor (LCA) ของ ใบลึกสุด (deepest leaves) ทั้งหมด ใบ (leaf) = โหนดที่ไม่มีลูก ความลึก (depth): root=0, ลูกของ depth d = d+1 LCA ของเซตโหนด = โหนดลึกที่สุดที่เป็น ancestor ของทุกโหนดในเซต ตัวอย่าง: [1,2,3,4,5] → LCA ของใบลึกสุด (4,5) คือโหนด 2 1

  4. Shortest Path with Alternating Colors: หาเส้นทางสั้นสุดสลับสี

    โจทย์ Directed graph โหนด 0..n-1 Edge มีสี แดง (red) หรือ น้ำเงิน (blue) หา shortest path จากโหนด 0 ไปทุกโหนด โดย สี edge ต้องสลับกัน (red→blue→red...) คืน array answer ขนาด n: answer[X] = ความยาว shortest alternating path 0→X (หรือ -1 ถ้าไม่มี) อัลกอริทึม: BFS บน State Graph (Node, Color) State =

  5. Connecting Cities With Minimum Cost: เชื่อมเมืองด้วยต้นทุนต่ำสุด (MST)

    โจทย์ มี N เมือง (1..N) และ connections [city1, city2, cost] หา Minimum Spanning Tree (MST) cost เพื่อเชื่อมเมืองทั้งหมด ถ้าไม่ได้ → -1 ตัวอย่าง: N=3, connections=[[1,2,5],[1,3,6],[2,3,1]] → MST = edges (2,3) และ (1,2) cost = 1+5=6 แต่ output ในตัวอย่างคือ -1 (อาจมีข้อผิดพลาดในตัวอย่างต้นฉบับ) อัลก

  6. Decrease Elements To Make Array Zigzag: ลดค่าให้ Array เป็น Zigzag

    โจทย์ กำหนด array nums operation เดียวคือ ลดค่าลง 1 หาจำนวน operation น้อยที่สุด ทำให้ array กลายเป็น Zigzag: Pattern 1 (even peaks): A[1] A[3] ... Pattern 2 (odd peaks): A[0] A[2] A[4] < ... ตัวอย่าง: [1,2,3] → 2 operations (ลด 2→0 หรือ 3→1) ข้อสังเกต เนื่องจาก operation มีแค่ ลดค่า เราไม่

  7. Binary Tree Coloring Game: เกมทาสีบน Binary Tree

    โจทย์ เกม 2 คนบน Binary Tree (โหนดมีค่า 1..n, n คี่): Player 1 เลือกโหนด x ทาสีแดง Player 2 เลือกโหนด y ≠ x ทาสีน้ำเงิน สลับกันทาสีเพื่อนบ้าน (parent, left, right) ของโหนดสีตัวเองที่ยังไม่ถูกทา ไม่ทาได้ → pass, ทั้งคู่ pass → จบเกม ชนะคนที่ทาสีได้มากกว่า เราคือ Player 2: หา y ที่รับประกันชนะได้หรื

  8. Snapshot Array: อาร์เรย์รองรับ Snapshot ใน Python

    โจทย์ ออกแบบ SnapshotArray รองรับ operations: SnapshotArray(length): สร้างอาร์เรย์ขนาด length เริ่มต้นทุกค่า = 0 set(index, val): ตั้งค่า index = val (เวอร์ชันปัจจุบัน) snap(): ถ่าย snapshot คืน snap_id (เริ่มจาก 0, เพิ่มทีละ 1) get(index, snap_id): คืนค่าที่ index ใน snapshot snap_id ตัวอย่าง: s

  9. Minimum Swaps to Group All 1's Together: สลับให้ 1 ติดกันน้อยที่สุด

    โจทย์ กำหนด binary array data หาจำนวนการสลับ (swap) น้อยที่สุด เพื่อให้ 1 ทั้งหมดติดกัน (อยู่ใน contiguous block) ตัวอย่าง: [1,0,1,0,1,0,0,1,1,0,1] → 3 swaps (ผลลัพธ์: [0,0,0,0,0,1,1,1,1,1,1]) ข้อสังเกตสำคัญ (Key Insight) จำนวน 1 ทั้งหมด = k (คงที่) เป้าหมาย: หา window ขนาด k ที่มี 1 มากที่สุด (ต้

  10. Number of Dice Rolls With Target Sum: ทอยลูกเต๋าหาผลรวมเป้าหมาย

    โจทย์ มีลูกเต๋า d ลูก แต่ละลูกมีหน้า f หน้า (เลข 1 ถึง f) หาจำนวนวิธีทอยให้ผลรวมเท่ากับ target modulo 10^9 + 7 ตัวอย่าง: d=2, f=6, target=7 → 6 วิธี (1+6, 2+5, 3+4, 4+3, 5+2, 6+1) Dynamic Programming (Bottom-up) dp[i][s] = จำนวนวิธีทอย i ลูกให้ได้ผลรวม s Base: dp[1][face] = 1 สำหรับ face = 1..f Tr

  11. Design File System: ออกแบบระบบไฟล์ใน Python

    โจทย์ ออกแบบ File System ที่รองรับ 2 operation: createPath(path, value): สร้าง path ใหม่ผูกค่า value คืน True ถ้าสำเร็จ, False ถ้า path มีอยู่แล้ว หรือ parent path ไม่มีอยู่ get(path): คืนค่าที่ผูกกับ path, หรือ -1 ถ้าไม่มี path นั้น รูปแบบ path: / ตามด้วย lowercase letters หนึ่งขึ้นไป เช่น /prog

  12. Can Make Palindrome from Substring: ตรวจสอบว่า Substring ทำเป็น Palindrome ได้หรือไม่

    โจทย์ กำหนด string s และ queries หลายๆ query แต่ละ query = [left, right, k] หมายถึง substring s[left:right+1] เราสามารถ: เรียงลำดับตัวอักษรใน substring ได้อย่างอิสระ เปลี่ยนตัวอักษรได้สูงสุด k ตัว (เปลี่ยนเป็นตัวอักษร lowercase ใดๆ) ถ้าสามารถทำให้เป็น palindrome ได้ → คืน true, มิฉะนั้น false ตัว

  13. Print Words Vertically: พิมพ์คำแนวตั้งใน Python

    โจทย์ กำหนด string s ให้สร้างรายการคำอ่านแนวตั้ง (vertical) โดยคำแต่ละคำอยู่คอลัมน์เดียว คืนค่าเป็น list of strings (ไม่มี trailing spaces) ตัวอย่าง: HOW ARE YOU → [HAY, ORO, WEU] H O W A R E Y O U ↓ ↓ ↓ H A Y O R O W E U อัลกอริทึม Split string เป็น list ของคำ (words) หา max_len = ความยาวคำที่ย

  14. Single Number II: หาตัวเลขที่ปรากฏครั้งเดียวใน Array (อื่นๆ ปรากฏ 3 ครั้ง)

    โจทย์ กำหนด array ของจำนวนเต็มไม่ว่าง ทุกตัวเลขปรากฏ 3 ครั้ง ยกเว้นตัวเดียวที่ปรากฏ 1 ครั้ง หาตัวเลขตัวนั้น ตัวอย่าง: [2,2,3,2] → Output: 3 วิธีแก้: Bit Manipulation (การนับบิต) เนื่องจากทุกตัวเลขปรากฏ 3 ครั้ง บิตแต่ละตำแหน่งที่รวมกันจะหาร 3 ลงตัว ยกเว้นบิตของตัวเลขที่ปรากฏ 1 ครั้ง ขั้นตอนอัลกอริท

  15. ตรวจสอบ IP Address ใน Python (IPv4 และ IPv6)

    ในบทช่วยสอนนี้ เราจะเขียนฟังก์ชันตรวจสอบว่า string ที่ให้มาเป็น IPv4, IPv6 หรือ Neither (ไม่ใช่ทั้งคู่) กฎการตรวจสอบ IPv4 รูปแบบ: 4 หมู่ตัวเลข คั่นด้วยจุด (.) เช่น 192.168.254.1 แต่ละหมู่: 0 - 255 ห้ามมี leading zeros (เช่น 192.168.254.01 ❌) กฎการตรวจสอบ IPv6 รูปแบบ: 8 กลุ่ม hex digits 4 ตัว คั

  16. ความแตกต่างระหว่าง == และ is ใน Python

    == Operator (Equality Operator) == เปรียบเทียบ ค่า (value) ของออบเจ็กต์ว่ามีค่าเท่ากันหรือไม่ is Operator (Identity Operator) is เปรียบเทียบ ตัวตน (identity) ว่าทั้งสองตัวแปร ชี้ไปที่ออบเจ็กต์เดียวกันในหน่วยความจำ หรือไม่ (ตรวจสอบ id()) ตัวอย่างโค้ด list1 = [1] list2 = [1] list3 = list1 print(id(

  17. ความแตกต่างระหว่าง Python และ Bash

    Python Python เป็นภาษาโปรแกรมมิ่งที่ออกแบบมาให้ เข้าใจง่าย เขียนง่าย เป็นภาษา dynamically typed ไม่ใช้ pointers Bash Bash (Bourne Again SHell) เป็น Command-line Interpreter (Shell) ที่มาพร้อม Linux และ macOS โดยค่าเริ่มต้น สามารถติดตั้งบน OS อื่นได้ ใช้เป็น Default User Shell ตารางเปรียบเทียบ #ห

  18. Bypass Antivirus ด้วย Veil Framework: คำเตือนและข้อมูลเพื่อการศึกษา

    ⚠️ คำเตือนสำคัญ: บทความนี้มีวัตถุประสงค์เพื่อ การศึกษาและการวิจัยด้านความปลอดภัยไซเบอร์ (Cybersecurity Research) เท่านั้น การใช้เครื่องมือเพื่อหลีกเลี่ยง antivirus เพื่อวัตถุประสงค์ที่ผิดกฎหมายหรือทำลายระบบของผู้อื่น เป็นสิ่งผิดกฎหมายและ違反จริยธรรม กรุณาใช้ความรู้นี้อย่างรับผิดชอบในสภาพแวดล้อมที่ได้ร

  19. Unit Testing ใน Python ด้วย unittest Module

    ในบทช่วยสอนนี้ เราจะเรียนรู้ Unit Testing ด้วยโมดูลสร้างใน unittest การทดสอบเป็นสิ่งสำคัญในการพัฒนาซอฟต์แวร์ ช่วยค้นพบบั๊กก่อนปล่อย production Unit Testing คืออะไร? ยกตัวอย่างระบบ Login แต่ละฟิลด์ (username, password) เป็น หน่วย (unit) การทดสอบการทำงานของแต่ละหน่วยแยกกัน เรียกว่า Unit Testing โครง

  20. Try-Except ใน Python: การจัดการข้อผิดพลาดและข้อยกเว้น

    ในบทช่วยสอนนี้ เราจะเรียนรู้ Try-Except สำหรับ Error และ Exception Handling ใน Python ประเภทของข้อผิดพลาดใน Python Syntax Errors (ข้อผิดพลาดไวยากรณ์) - Python ไม่เข้าใจโค้ด ตรวจพบตอน compile time Exceptions (ข้อยกเว้น) - ข้อผิดพลาดที่เกิดขณะรันโปรแกรม (Runtime) เช่น ZeroDivisionError, ValueError

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:138/451  20-คอมพิวเตอร์/Page Goto:1 132 133 134 135 136 137 138 139 140 141 142 143 144