Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. เกมของบอบ (Bob's Game) ใน Python

    ภาพรวม บอบมีลิสต์ตัวเลข แต่ละรอบเลือก 2 ตัวแทนที่ด้วย 1 จำนวนบวกที่มีผลรวมเท่าเดิม ชนะเมื่อทุกตัวเป็นเลขคู่ หาจำนวนรอบน้อยที่สุด หรือ -1 ถ้าไม่ได้ ข้อสังเกตสำคัญ เลขคู่ + เลขคู่ = เลขคู่ ✓ เลขคี่ + เลขคี่ = เลขคู่ ✓ เลขคู่ + เลขคี่ = เลขคี่ ✗ ดังนั้น ต้องจับคู่เลขคี่กับเลขคี่ ถ้าจำนวนเลขคี่เป็นคี

  2. การแบ่งหน้าหนังสือ (Book Pagination) ใน Python

    ภาพรวม โจทย์จำลองการแบ่งหน้าหนังสือ: กำหนดลิสต์คำ (book), หน้า (page, 0-indexed), ขนาดหน้า (page_size) คืนลิสต์คำในหน้านั้น ถ้าหน้าเกินคืนลิสต์ว่าง ตัวอย่าง book = [hello, world, programming, language, python, c++, java] page = 1, page_size = 3 หน้า 0: ดัชนี 0-2 → hello, world, programming หน้า 1:

  3. Boss Fight: กรองบอสที่แพ้ได้ใน Python

    ภาพรวม โจทย์จำลองการต่อสู้: fighters (ลิสต์ไบนารี) ต่อสู้กับ bosses (มาทริกซ์ไบนารี) fighters ชนะ boss row ใดก็ต่อเมื่อจำนวน 1 ใน fighters ≥ จำนวน 1 ใน boss row นั้น คืนมาทริกซ์ bosses ที่เหลือ (ที่ fighters แพ้) ตัวอย่าง fighters = [0, 1, 1] (มี 1 ทั้งหมด 2 ตัว) bosses: [[0,0,0], # sum=0 → fight

  4. ซื้อรถให้ได้มากที่สุดในงบประมาณ Python

    ภาพรวม โจทย์หาจำนวนรถสูงสุดที่ซื้อได้จากรายการราคา โดยมีงบประมาณ k กลยุทธ์คือซื้อรถราคาถูกก่อน (Greedy) ตัวอย่าง ราคา: [80, 20, 10, 30, 80], งบ 85 เรียงราคา: [10, 20, 30, 80, 80] 25 ซื้อได้ 3 คัน โค้ด Python class Solution: def solve(self, prices, k): count = 0 prices.sort()

  5. รหัสซีซาร์ (Caesar Cipher) ใน Python

    ภาพรวม Caesar Cipher เป็นรหัสลับแบบเลื่อนตัวอักษร (shift cipher) เลื่อนแต่ละตัวอักษร k ตำแหน่งในอัลฟาเบท วนรอบ (wrap around) เมื่อเกิน z ตัวอย่าง อินพุต: hello, k = 3 h→k, e→h, l→o, l→o, o→r → khoor โค้ด Python class Solution: def solve(self, s, k): def shift(c): i = ord(c)

  6. แปลงเป็น camelCase ใน Python

    ภาพรวม camelCase คือรูปแบบการเขียนที่คำแรกขึ้นต้นตัวเล็ก คำต่อไปขึ้นต้นตัวใหญ่ ไม่มีช่องว่าง ตัวอย่าง อินพุต: [Hello, World, Python, Programming] เอาต์พุต: helloWorldPythonProgramming โค้ด Python class Solution: def solve(self, words): s = .join(word[0].upper() + word[1:].lower() for w

  7. การรวมเซลล์ (Cell Fusion) ใน Python

    ภาพรวม โจทย์จำลองการรวมเซลล์: ในแต่ละรอบ ให้นำเซลล์ 2 ตัวที่ใหญ่ที่สุดมา interact ถ้าเท่ากัน → ทั้งคู่ตาย (หายไป) ถ้าไม่เท่ากัน → รวมกันเป็นเซลล์ใหม่ขนาด floor((a+b)/3) ทำซ้ำจนเหลือ 0 หรือ 1 เซลล์ คืนขนาดเซลล์สุดท้าย หรือ -1 ถ้าไม่เหลือ ตัวอย่าง อินพุต: [20, 40, 40, 30] 40, 40 เท่ากัน → ตายทั้งค

  8. นับการเปลี่ยนทิศทางของลำดับตัวเลขใน Python

    ภาพรวม โจทย์นับจำนวนครั้งที่ลำดับตัวเลขเปลี่ยนทิศทาง (direction change) จากเพิ่มขึ้นเป็นลดลง หรือ ลดลงเป็นเพิ่มขึ้น ตัวอย่าง อินพุต: [2, 4, 10, 18, 6, 11, 13] การเปลี่ยนทิศทาง: ดัชนี 3: 18 → 6 (เพิ่ม → ลด) Peak at 18 ดัชนี 4: 6 → 11 (ลด → เพิ่ม) Valley at 6 รวม 2 ครั้ง เงื่อนไข Peak/Valley ที่ด

  9. กำหนด ID ให้ค่าที่ไม่ซ้ำในลิสต์ Python (รักษาลำดับ)

    ภาพรวม บทความสอน 2 วิธีกำหนด ID ให้ค่าที่ไม่ซ้ำในลิสต์ โดยค่าที่ซ้ำได้ ID เดียวกัน และ ID กำหนดตามลำดับที่เจอครั้งแรก (preserve order) ตัวอย่างข้อมูล Alist = [Mon, Tue, Wed, Mon, 5, 3, 3] ค่าที่ไม่ซ้ำตามลำดับ: Mon, Tue, Wed, 5, 3 → ID: 0,1,2,3,4 ผลลัพธ์: [0, 1, 2, 0, 3, 4, 4] วิธี 1: enumerate + O

  10. กำหนด ID ให้ค่าที่ไม่ซ้ำในลิสต์ Python

    ภาพรวม บทความสอน 2 วิธีกำหนด ID เฉพาะตัว (unique ID) ให้แต่ละค่าที่ไม่ซ้ำในลิสต์ ค่าที่ซ้ำจะได้ ID เดียวกัน ตัวอย่างข้อมูล Alist = [5, 3, 3, 12] ค่าที่ไม่ซ้ำ: 5, 3, 12 → กำหนด ID 0,1,2 ผลลัพธ์ที่คาดหวัง: [2, 0, 0, 1] หรือ [0, 1, 1, 3] ขึ้นอยู่กับวิธี วิธี 1: enumerate + set Alist = [5, 3, 3, 12] e

  11. นับ Sublist ที่ไม่ซ้ำกันในลิสต์ Python

    ภาพรวม บทความสอน 2 วิธีนับจำนวน sublist ที่ไม่ซ้ำกันในลิสต์ซ้อน ตัวอย่างข้อมูล Alist = [[Mon], [Tue, Wed], [Tue, Wed]] sublist ที่ไม่ซ้ำ: [Mon] (1 ครั้ง), [Tue, Wed] (2 ครั้ง) วิธี 1: ใช้ collections.Counter from collections import Counter Alist = [[Mon], [Tue, Wed], [Tue, Wed]] counts = Counter(s

  12. ดึง Keys ของ Dictionary เป็น List ใน Python

    ภาพรวม บทความสอน 3 วิธีดึง keys จาก dictionary มาเป็น list ตัวอย่างข้อมูล Adict = {1: Sun, 2: Mon, 3: Tue, 4: Wed} ผลลัพธ์: [1, 2, 3, 4] วิธี 1: ใช้ dict.keys() Adict = {1: Sun, 2: Mon, 3: Tue, 4: Wed} keys_list = list(Adict.keys()) print(keys_list) # [1, 2, 3, 4] วิธีมาตรฐาน อ่านง่าย Python 3 คื

  13. ดึงสมาชิกตัวแรกและตัวสุดท้ายของลิสต์ใน Python

    ภาพรวม บทความสอน 3 วิธีดึงสมาชิกตัวแรก (index 0) และตัวสุดท้าย (index -1) ของลิสต์ ตัวอย่างข้อมูล Alist = [Sun, Mon, Tue, Wed, Thu] ผลลัพธ์: [Sun, Thu] วิธี 1: ใช้ Index โดยตรง Alist = [Sun, Mon, Tue, Wed, Thu] print(Alist[0]) # Sun print(Alist[-1]) # Thu วิธี 2: List Slicing Alist = [Sun, Mon

  14. ดึงสมาชิกตัวแรกของทุก Sublist ใน Python

    ภาพรวม บทความสอน 3 วิธีดึงสมาชิกตัวแรก (index 0) จากทุก sublist ในลิสต์ซ้อน ตัวอย่างข้อมูล Alist = [[Mon, 1], [Tue, Wed, Fri], [12, 3, 7]] ผลลัพธ์: [Mon, Tue, 12] วิธี 1: For Loop Alist = [[Mon, 1], [Tue, Wed, Fri], [12, 3, 7]] for item in Alist: print(item[0]) # Output: Mon, Tue, 12 วิธี 2:

  15. ดึงสมาชิกตัวสุดท้ายของทุก Sublist ใน Python

    ภาพรวม บทความสอน 3 วิธีดึงสมาชิกตัวสุดท้าย (index -1) จากทุก sublist ในลิสต์ซ้อน (nested list) ตัวอย่างข้อมูล Alist = [[Mon, 1], [Tue, Wed, Fri], [12, 3, 7]] ผลลัพธ์ที่ต้องการ: [1, Fri, 7] วิธี 1: For Loop (เข้าใจง่ายที่สุด) Alist = [[Mon, 1], [Tue, Wed, Fri], [12, 3, 7]] for item in Alist: pr

  16. ดึงค่าที่ไม่ซ้ำจากลิสต์ใน Python 3 วิธี

    ภาพรวม บทความสอน 3 วิธีในการดึงค่าเฉพาะค่าที่ไม่ซ้ำ (unique) จากลิสต์ใน Python วิธี 1: ใช้ append() กับ for loop def catch_unique(list_in): unq_list = [] for x in list_in: if x not in unq_list: unq_list.append(x) return unq_list Alist = [Mon, Tue, Mon, wed, 40, 40]

  17. แบ่งสตริงเป็นชิ้นขนาด N ใน Python

    ภาพรวม โจทย์แบ่งสตริงเป็นส่วนย่อยขนาด n ตัวอักษร ชิ้นสุดท้ายอาจสั้นกว่า n ตัวอย่าง อินพุต: s=abcdefghijklmn, n=4 เอาต์พุต: [abcd, efgh, ijkl, mn] โค้ด Python (While Loop) class Solution: def solve(self, s, n): i = 0 f = [] while i < len(s): f.append(s[i:i+n]

  18. คำนวณระยะทางแมนฮัตตันเยี่ยมบล็อกเมืองใน Python

    ภาพรวม โจทย์คำนวณระยะทางแมนฮัตตัน (Manhattan distance) รวมในการเดินทางเยี่ยมบล็อกต่างๆ ในเมือง ตามลำดับที่กำหนด เริ่มจากตำแหน่ง (0,0) = start ตัวอย่าง มาทริกซ์เมือง: [[q,b,c], [d,e,z], [g,h,i]] บล็อกที่ต้องเยี่ยม: [h, b, c] พิกัด: start: (0,0) h: (2,1) b: (0,1) c: (0,2) ระยะทาง: start→h: |2-

  19. ลำดับ Collatz ใน Python

    ภาพรวม ลำดับ Collatz เริ่มจากจำนวนเต็มบวก n: ถ้า n คู่ → n = n/2 ถ้า n คี่ → n = 3n + 1 ทำซ้ำจน n = 1 โจทย์หาความยาวของลำดับ (รวม n เริ่มต้นและ 1 สุดท้าย) ตัวอย่าง n=13 ลำดับ: 13, 40, 20, 10, 5, 16, 8, 4, 2, 1 → ความยาว 10 โค้ด Python class Solution: def solve(self, num): if num == 0

  20. การเรียงคอลัมน์ของมาทริกซ์ใน Python

    ภาพรวม โจทย์เรียงลำดับคอลัมน์ของมาทริกซ์จากน้อยไปมาก (ascending) โดยแต่ละคอลัมน์เรียงแยกกัน ตัวอย่าง อินพุต: [[11, 21, 31], [6, 6, 4], [1, 11, 8]] คอลัมน์ 0: [11,6,1] → [1,6,11] คอลัมน์ 1: [21,6,11] → [6,11,21] คอลัมน์ 2: [31,4,8] → [4,8,31] เอาต์พุต: [[1, 6, 4], [6, 11, 8], [11, 21, 31]]

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:167/451  20-คอมพิวเตอร์/Page Goto:1 161 162 163 164 165 166 167 168 169 170 171 172 173