Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Get Match Indices ใน Python: หาดัชนีของค่าที่ตรงกันระหว่างสองลิสต์

    ได้ลิสต์สองลิสต์ ต้องการหาดัชนีในลิสต์แรกของค่าที่ปรากฏในลิสต์ที่สอง วิธี 1: ใช้ list.index() ใน List Comprehension listA = [Mon,Tue,Wed,Thu,Fri] listB = [Tue,Fri] res = [listA.index(i) for i in listB] print(res) # [1, 4] วิธี 2: ใช้ enumerate และ set (เร็วกว่าสำหรับลิสต์ใหญ่) listA = [Mon,Tue,W

  2. Integer to English Words ใน Python: แปลงตัวเลขเป็นคำอ่านภาษาอังกฤษ

    แปลงตัวเลข 0 ถึง 2³¹-1 เป็นคำอ่านภาษาอังกฤษ เช่น 512 → Five Hundred Twelve ขั้นตอนการแก้ปัญหา เตรียมลิสต์คำ: less_than_20 (1-19), tens (20,30,...90), thousands (, Thousand, Million, Billion) ฟังก์ชัน helper(n) แปลง 3 หลัก: n == 0 → n < 20 → less_than_20[n] n < 100 → ten

  3. ความแตกต่างระหว่าง IPv4 และ IPv6

    IPv4 และ IPv6 เป็นโปรโตคอลอินเทอร์เน็ตหลักสองตัวที่ใช้ส่งข้อมูลข้ามเครือข่าย นี่คือความแตกต่างสำคัญ: ลำดับหัวข้อIPv4IPv6 1 การกำหนดค่าที่อยู่ (Address Configuration) ความยาว 32 บิต แสดงในทศนิยม รองรับ Manual และ DHCP ความยาว 128 บิต แสดงในฐานสิบหก รองรับ A

  4. Remove Element ใน Python: ลบค่าที่กำหนดจากอาร์เรย์แบบ In-place

    ได้อาร์เรย์ nums และค่า val ลบค่า val ทุกตัวออกจากอาร์เรย์แบบ in-place คืนความยาวใหม่ (ลำดับอาจเปลี่ยนได้) ตัวอย่าง nums = [0,1,5,5,3,0,4,5], val = 5 → ความยาวใหม่ 5 (อาร์เรย์อาจเป็น [0,1,3,0,4,_,_,_]) ขั้นตอนการแก้ปัญหา (Two Pointers) count = 0 (ตำแหน่งเขียน) วน i ทุกตำแหน่ง: ถ้า

  5. Number of Boomerangs ใน Python: นับจำนวนบุเมรังจากจุดบนระนาบ

    ได้ n จุดบนระนาบ (ไม่ซ้ำกัน) บุเมรัง คือ 3 จุด (i,j,k) ที่ระยะห่าง i-j = i-k นับจำนวนบุเมรังทั้งหมด (ลำดับสำคัญ) ตัวอย่าง [[0,0],[1,0],[2,0]] → บุเมรัง: ([1,0],[0,0],[2,0]) และ ([1,0],[2,0],[0,0]) → 2 ขั้นตอนการแก้ปัญหา วนแต่ละจุดเป็น i (จุดศูนย์กลาง) คำนวณระยะยกกำลังสองไปยังจุดอื่นทั้งหมด เก

  6. Heaters ใน Python: หารัศมีขั้นต่ำของ हीटरให้ครอบคลุมบ้านทั้งหมด

    มีตำแหน่งบ้านและฮีตเตอร์บนเส้นตรง ฮีตเตอร์แต่ละตัวให้ความอบอุ่นในรัศมี r หารัศมี r น้อยที่สุดที่ทำให้ทุกบ้านอยู่ในรัศมีของฮีตเตอร์อย่างน้อย 1 ตัว ตัวอย่าง houses = [1,2,3,4], heaters = [1,4] → รัศมี 1 (ฮีตเตอร์ที่ 1 ครอบคลุม 1-2, ฮีตเตอร์ที่ 4 ครอบคลุม 3-4) ขั้นตอนการแก้ปัญหา (Binary Search) เร

  7. Reverse String II ใน Python: กลับตัวอักษร k ตัวแรกทุก 2k ตัว

    ได้สตริง s และจำนวนเต็ม k กลับตัวอักษร k ตัวแรกในแต่ละบล็อก 2k ตัว หากเหลือไม่ถึง k ตัว → กลับทั้งหมด หากเหลือ ≥ k แต่น้อยกว่า 2k → กลับแค่ k ตัวแรก ตัวอย่าง s = abcdefg, k = 3 → บล็อกแรก 6 ตัว: abc→cba, def คงเดิม → cbadefg ขั้นตอนการแก้ปัญหา แปลงสตริงเป็นลิสต์ตัวอักษร วนดัชนี i = k-1, 3k-1,

  8. Construct String from Binary Tree ใน Python: สร้างสตริงจากต้นไม้แบบทรีออร์เดอร์

    ได้ต้นไม้ไบนารี สร้างสตริงจาก preorder traversal ใช้วงเล็บแทนโหนดลูก NULL แทนด้วย () ลบวงเล็บว่างที่ไม่ส่งผลต่อการแมปปิงหนึ่งต่อหนึ่ง ตัวอย่าง ต้นไม้: 5 (ซ้าย:6(ขวา:8), ขวา:7) → 5(6()(8))(7) ขั้นตอนการแก้ปัญหา (Recursive) ถ้าโหนดเป็น NULL → คืนสตริงว่าง ถ้าโหนดเป็นใบ (ไม่มีลูก) → คืนค่าโหนด

  9. Baseball Game ใน Python: คำนวณคะแนนเกมเบสบอลจากอัปเดตต่าง ๆ

    มีรายการอัปเดตคะแนน 4 ประเภท: ตัวเลข (คะแนนรอบ), + (ผลรวม 2 รอบล่าสุด), D (สองเท่ารอบล่าสุด), C (ยกเลิกรอบล่าสุด) ใช้ stack จัดการ คืนผลรวมคะแนนทั้งหมด ตัวอย่าง [5,2,C,D,+] → รอบ1:5, รอบ2:2, C:ลบ2, D:2×5=10, +:5+10=15 → ผลรวม 30 ขั้นตอนการแก้ปัญหา stack = [] วนแต่ละ op: +: push sta

  10. Employee Importance ใน Python: คำนวณความสำคัญรวมของพนักงานและลูกน้อง

    โครงสร้างพนักงาน: [id, importance, [subordinates]] ได้รายการพนักงานทั้งหมดและ id หนึ่ง ต้องการผลรวมความสำคัญของพนักงานคนนั้นและลูกน้องทุกระดับ (BFS/DFS) ตัวอย่าง employees = [[1,5,[2,3]],[2,3,[]],[3,3,[]]], id=1 → 5 + 3 + 3 = 11 ขั้นตอนการแก้ปัญหา (BFS) สร้าง dict weight[id] = importance, leade

  11. Kth Largest Element in a Stream ใน Python: หาค่าที่ K มากที่สุดในสตรีม

    ออกแบบคลาส KthLargest หาค่าที่ k-th largest ในสตรีมตัวเลข (เรียงจากมากไปน้อย ไม่นับ distinct) Constructor รับ k และอาร์เรย์เริ่มต้น nums เมธอด add(val) คืนค่า k-th largest ปัจจุบัน ตัวอย่าง k=3, nums=[4,5,8,2] → add(3)→4, add(5)→5, add(10)→5, add(9)→8, add(4)→8 ขั้นตอนการแก้ปัญหา (Min-Heap แบบง่าย

  12. Design HashSet ใน Python: สร้าง HashSet แบบกำหนดเอง

    ออกแบบ HashSet โดยไม่ใช้ไลบรารี built-in รองรับ add(x), contains(x), remove(x) ใช้ Bucket แบบรายการ (list) จัดการชนกัน โครงสร้างข้อมูล Bucket: รายการเก็บค่า มีเมธอด update, get, remove MyHashSet: อาร์เรย์ของ Bucket ขนาด key_space = 2096 ใช้ key % key_space เป็น hash ตัวอย่างการใช้งาน add(1),

  13. Design HashMap ใน Python: สร้าง HashMap แบบกำหนดเอง

    ออกแบบ HashMap โดยไม่ใช้ไลบรารี built-in รองรับ 3 เมธอด: put(key, value), get(key), remove(key) ใช้การจัดการชนกันแบบ Separate Chaining ด้วย Linked List โครงสร้างข้อมูล Node: เก็บ key, val, next LinkedList: จัดการโหนด (search, add, get, remove) MyHashMap: อาร์เรย์ของ LinkedList ขนาดคงที่ (pri

  14. 1-bit and 2-bit Characters ใน Python: ตรวจสอบตัวอักษรสุดท้ายเป็น 1-bit หรือไม่

    มีตัวอักษร 2 ประเภท: 1-bit = 0, 2-bit = 10 หรือ 11 ให้สตริงบิตที่จบด้วย 0 เสมอ ตรวจสอบว่าตัวอักษรสุดท้ายเป็น 1-bit (0) หรือไม่ ตัวอย่าง [1,0,0] → ถอดรหัสได้: 10 (2-bit) + 0 (1-bit) → ตัวสุดท้ายเป็น 1-bit → True ขั้นตอนการแก้ปัญหา 1 ดึงบิตแรก (pop(0)) ถ้าบิตแรกเป็น 1 → ดึงบิตถัดไปอีก 1 ตัว

  15. Longest Word in Dictionary ใน Python: หาคำยาวที่สุดสร้างได้ทีละตัวอักษร

    ได้รายการคำแทนพจนานุกรม หาคำที่ยาวที่สุดที่สร้างได้ทีละตัวอักษรจากคำอื่นในพจนานุกรม (คำนำหน้าทุกตัวต้องมีในพจนานุกรม) หากหลายคำ คืนคำที่เรียงลำดับเล็กซิโคกราฟิกน้อยที่สุด ตัวอย่าง [h,he,hel,hell,hello] → hello (h→he→hel→hell→hello ทุกคำนำหน้ามีอยู่) ขั้นตอนการแก้ปัญหา (Trie) สร้าง Trie ใส่คำทุก

  16. Find Smallest Letter Greater Than Target ใน Python: หาตัวอักษรน้อยที่สุดที่มากกว่าเป้าหมาย

    ได้รายการตัวอักษร letters เรียงลำดับแล้ว (พิมพ์เล็ก) และตัวอักษรเป้าหมาย target หาตัวอักษรในรายการที่มากกว่า target และมีค่าน้อยที่สุด รายการวนรอบ (wrap around) คือถ้า target=z และ letters=[a,b] → คำตอบ a ตัวอย่าง letters = [c,f,j], target = a → c ขั้นตอนการแก้ปัญหา (Binary Search) l = 0, r = l

  17. Min Cost Climbing Stairs ใน Python: หาต้นทุนต่ำสุดขึ้นบันได

    มีบันไดแต่ละขั้นมีค่าใช้จ่าย cost[i] จ่ายค่าใช้จ่ายแล้วขึ้นได้ 1 หรือ 2 ขั้น เริ่มจากขั้น 0 หรือ 1 ก็ได้ หาต้นทุนรวมน้อยที่สุดถึงขั้นบนสุด (ด้านนอกอาร์เรย์) ตัวอย่าง cost = [12,17,20] → เริ่มขั้น 1 (จ่าย 17) ขึ้น 2 ขั้นถึงบนสุด → ต้นทุน 17 ขั้นตอนการแก้ปัญหา (Dynamic Programming) dp[i] = ต้นทุน

  18. Largest Number At Least Twice of Others ใน Python: หาดัชนีค่าสูงสุดที่มากกว่าสองเท่าทุกตัว

    ได้อาร์เรย์ nums มีค่าสูงสุดเพียงค่าเดียว ตรวจสอบว่าค่าสูงสุดนี้มากกว่าหรือเท่ากับสองเท่าของทุกค่าอื่นในอาร์เรย์ หากใช่ คืนดัชนีของค่าสูงสุด มิฉะนั้นคืน -1 ตัวอย่าง [3,6,1,0] → ค่าสูงสุด 6 (ดัชนี 1) 6 ≥ 2×3, 2×1, 2×0 → คืน 1 ขั้นตอนการแก้ปัญหา หาค่าสูงสุด maximum = max(nums) วนหาดัชนีของค่าสู

  19. Shortest Completing Word ใน Python: หาคำสั้นที่สุดครอบคลุมตัวอักษรป้ายทะเบียน

    ได้สตริง licensePlate (อาจมีตัวเลข สัญลักษณ์ ตัวพิมพ์ใหญ่/เล็ก) และรายการคำ words ต้องการคำที่สั้นที่สุดใน words ที่มีตัวอักษรครอบคลุมทุกตัวอักษรใน licensePlate (ไม่นับตัวเลข/สัญลักษณ์, ไม่สนใจพิมพ์ใหญ่/เล็ก) หากมีหลายคำ คืนตัวแรกในอาร์เรย์ ตัวอย่าง licensePlate = 1s3 PSt, words = [step,steps,strip

  20. Prime Number of Set Bits ใน Python: นับจำนวนที่มีบิต 1 เป็นจำนวนเฉพาะ

    ได้รับจำนวนเต็ม L และ R นับจำนวนในช่วง [L, R] ที่มีจำนวนบิต 1 (set bits) ในรูปแบบไบนารีเป็นจำนวนเฉพาะ ตัวอย่าง L=6, R=10 → 6(110), 7(111), 9(1001), 10(1010) มี set bits = 2,3,2,2 (ล้วนเป็นเฉพาะ) → ผลลัพธ์ 4 ขั้นตอนการแก้ปัญหา จำนวนเฉพาะที่เป็นไปได้สำหรับ set bits (สูงสุด 20 บิตสำหรับ int 32-bit

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:147/451  20-คอมพิวเตอร์/Page Goto:1 141 142 143 144 145 146 147 148 149 150 151 152 153