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

    บางครั้งต้องแปลงตัวเลขให้เป็นลิสต์ที่แต่ละสมาชิกคือหลักตัวเลขของตัวเลขนั้น ใช้ List Comprehension แปลงตัวเลขเป็นสตริง แล้วแปลงแต่ละตัวอักษรเป็น int แล้วรวมเป็นลิสต์ ตัวอย่าง numA = 1342 print(Given number : \n, numA) res = [int(x) for x in str(numA)] print(List of number: \n, res) ผลลัพธ์ Given numb

  2. แปลงเซตเป็นลิสต์ใน Python

    ในการวิเคราะห์ข้อมูลด้วย Python บางครั้งต้องแปลงข้อมูลจากเซต (set) เป็นลิสต์ (list) ใช้ list() วิธีตรงไปตรงมา ใช้ฟังก์ชัน list() กับเซตที่กำหนด ตัวอย่าง setA = {Mon, day, 7pm} print(Given set : \n, setA) res = list(setA) print(Final list: \n, res) ผลลัพธ์ Given set : {7pm, Mon, day} Final list: [7pm

  3. แปลงสตริงที่เป็นพจนานุกรมให้กลายเป็นพจนานุกรมจริงใน Python

    บทความนี้สาธิตวิธีแปลงสตริงที่มีรูปแบบพจนานุกรมให้กลายเป็นพจนานุกรมจริงของ Python ใช้ json.loads() json.loads() แปลงสตริง JSON ให้เป็น object ของ Python โดยรักษาโครงสร้างข้อมูล ตัวอย่าง import json stringA = {Mon : 3, Wed : 5, Fri : 7} # สตริงพจนานุกรม print(Given string : \n, stringA) res = json.l

  4. Regular Expression Matching ใน Python

    กำหนดสตริง s และ pattern p รองรับ regex: . match ตัวอักษรเดียว, * match 0 หรือมากกว่าของตัวอักษรก่อนหน้า ต้องตรวจสอบว่า s match p หรือไม่ ตัวอย่าง: s=aa, p=a. → True; s=aaaaaa, p=a* → True ขั้นตอนการแก้ปัญหา (Dynamic Programming) สร้างตาราง dp ขนาด (len(s)+1) x (len(p)+1) dp[0][0] = True เติม dp[0]

  5. Merge k Sorted Lists ใน Python

    กำหนด k sorted linked lists ต้อง merge เป็น 1 sorted linked list ใช้ heap (priority queue) ตัวอย่าง: [1,4,5], [1,3,4], [2,6] → [1,1,2,3,4,4,5,6] ขั้นตอนการแก้ปัญหา สร้าง Min Heap insert head ของทุก list เข้า heap วน extract min: นำ node ที่เล็กที่สุดต่อเข้ากับผลลัพธ์ แล้ว push node.next เข้า heap (

  6. Longest Valid Parentheses ใน Python

    กำหนดสตริงประกอบด้วย ( และ ) ต้องหาความยาวของ substring ที่เป็น valid parentheses ยาวที่สุด ตัวอย่าง: ))(())()) → 6 (substring (())()) ขั้นตอนการแก้ปัญหา (Stack) stack เริ่มต้น [-1], ans = 0 วน i: ถ้า s[i]==( → push i ถ้า s[i]==): ถ้า stack[-1]!=-1 และ s[stack[-1]]==( → pop, ans = max(ans, i - stac

  7. First Missing Positive ใน Python

    กำหนดอาร์เรย์จำนวนเต็ม unsorted ต้องหาจำนวนเต็มบวกที่ขาดหายไปน้อยที่สุด ตัวอย่าง: [4, -3, 1, -1] → 2 ขั้นตอนการแก้ปัญหา (Cyclic Sort) เพิ่ม 0 เข้าหน้าอาร์เรย์ (เพื่อให้ index ตรงกับค่า) วน i: while nums[i] ในช่วง [0, n) และ nums[nums[i]] != nums[i] → swap nums[i] กับ nums[nums[i]] หลังจัดเรียงแล้ว

  8. Trapping Rain Water ใน Python

    กำหนดอาร์เรย์ n จำนวนเต็มไม่ติดลบ แทน elevation map ความกว้างแต่ละแท็บ = 1 ต้องคำนวณปริมาณน้ำที่เก็บได้หลังฝนตก ตัวอย่าง: [0,1,0,2,1,0,1,3,2,1,2,1] → 6 หน่วยน้ำ ขั้นตอนการแก้ปัญหา (Stack) ใช้ stack เก็บ index ของแท็บที่ความสูงลดลง วน i: ถ้า stack ว่างหรือ height[stack[-1]] ≥ height[i] → push i, i++

  9. Wildcard Matching ใน Python

    กำหนดสตริง s และ pattern p รองรับ wildcard: ? match ตัวอักษรเดียว, * match 0 หรือมากกว่าตัวอักษร ต้องตรวจสอบว่า s match p หรือไม่ ตัวอย่าง: s=aa, p=a? → True; s=aaaaaa, p=a* → True ขั้นตอนการแก้ปัญหา (Dynamic Programming) สร้างตาราง dp ขนาด (len(s)+1) x (len(p)+1) เริ่มต้น False dp[0][0] = True เติ

  10. Jump Game II ใน Python

    กำหนดอาร์เรย์จำนวนเต็มบวก เริ่มที่ index 0 แต่ละค่าคือ max jump length จากตำแหน่งนั้น ต้องหาจำนวนกระโดดน้อยที่สุดเพื่อถึง index สุดท้าย ตัวอย่าง: [2,3,1,1,4] → 2 (กระโดด 0→1 แล้ว 1→4) ขั้นตอนการแก้ปัญหา (Greedy) end = 0, jumps = 0, farthest = 0 วน i จาก 0 ถึง n-1: farthest = max(farthest, nums[i] +

  11. ตรวจสอบสตริงว่าเป็นตัวเลขได้หรือไม่ใน Python

    กำหนดสตริง ต้องตรวจสอบว่าแทนตัวเลขได้หรือไม่ เช่น 0.2 → True, abc → False, -2.5 → True, 10 → True วิธีการ ใช้การ parse สตริงของภาษา: ลองแปลงเป็น float ถ้าไม่ error → เป็นตัวเลข มิฉะนั้นไม่ใช่ ตัวอย่างโค้ด class Solution(object): def isNumber(self, s): s = s.strip() try:

  12. Largest Rectangle in Histogram ใน Python

    กำหนดอาร์เรย์จำนวนเต็มแทนความสูงของ histogram (แต่ละแท็บกว้าง 1) ต้องหาพื้นที่สี่เหลี่ยมผืนผ้ามากที่สุดที่ใส่ใน histogram ได้ ขั้นตอนการแก้ปัญหา (Monotonic Stack) ใช้ stack เก็บ index ของแท็บที่ความสูงเพิ่มขึ้น วน i จาก 0 ถึง n-1: ถ้า stack ว่างหรือ height[stack[-1]] ≤ height[i] → push i, i++ heig

  13. Best Time to Buy and Sell Stock III ใน Python

    กำหนดอาร์เรย์ราคาหุ้นวันละ i ต้องหากำไรสูงสุดได้สูงสุด 2 transactions (ซื้อ-ขาย) ตัวอย่าง: [3,3,5,0,1,3,1,4] → 6 (ซื้อวันที่ 4 ราคา 0 ขายวันที่ 6 ราคา 3 กำไร 3; ซื้อวันที่ 7 ราคา 1 ขายวันที่ 8 ราคา 4 กำไร 3) ขั้นตอนการแก้ปัญหา Forward pass: คำนวณ max profit ถ้าขายในวัน i (dp[i]) Backward pass: คำนว

  14. Binary Tree Maximum Path Sum ใน Python

    กำหนด binary tree ไม่ว่าง ต้องหา maximum path sum โดย path คือลำดับโหนดที่เชื่อมต่อกัน parent-child มีอย่างน้อย 1 โหนด ไม่จำเป็นต้องผ่าน root ตัวอย่าง tree: root=-10, left=9, right=10, right.left=15, right.right=7 → output 32 (path 15→10→7) ขั้นตอนการแก้ปัญหา ฟังก์ชัน solve(node) คืนค่า max path su

  15. Longest Consecutive Sequence ใน Python

    กำหนดอาร์เรย์จำนวนเต็ม ต้องหาความยาวของลำดับตัวเลขที่เรียงติดกันมากที่สุด (ไม่จำเป็นต้องเรียงในอาร์เรย์) ตัวอย่าง: [100, 4, 250, 1, 3, 2] → 4 เพราะลำดับ [1,2,3,4] ขั้นตอนการแก้ปัญหา แปลงอาร์เรย์เป็น set เพื่อ O(1) lookup วนทุกตัว i ใน set: ถ้า i-1 ไม่อยู่ใน set (หมายถึง i เป็นจุดเริ่มต้นของลำดับ) น

  16. Word Break II ใน Python

    กำหนดสตริง s และ dictionary wordDict (ลิสต์คำ) ต้องแทรกช่องว่างใน s เพื่อสร้างประโยคที่ทุกคำอยู่ใน wordDict หาทุกประโยคที่เป็นไปได้ ตัวอย่าง: s = appleraincoat, wordDict = [app,apple,rain,coat,raincoat] → [apple rain coat, apple raincoat] ขั้นตอนการแก้ปัญหา ใช้ memoization (dictionary memo) เก็บผลล

  17. Binary Tree Postorder Traversal แบบ Iterative ใน Python

    กำหนด binary tree ต้องหา postorder traversal (left, right, root) แบบ iterative (ไม่ใช้ recursion) ตัวอย่าง tree: root=-10, left=9, right=10, right.left=15, right.right=7 → output [9,15,7,10,-10] ขั้นตอนการแก้ปัญหา ถ้า root เป็น None คืนลิสต์ว่าง ใช้ stack เก็บ pair [node, state] โดย state=0 คือยังไ

  18. Word Search II ใน Python

    กำหนดบอร์ด 2D และลิสต์คำศัพท์ ต้องหาคำทั้งหมดที่ปรากฏบนบอร์ด โดยตัวอักษรต้องติดกันแนวนอนหรือแนวตั้ง และแต่ละเซลล์ใช้ได้สูงสุด 1 ครั้งต่อคำ ตัวอย่าง: บอร์ด 4x4, words = [oath,pea,tea,rain] → output [oath,tea] ขั้นตอนการแก้ปัญหา สร้าง Trie (prefix tree) จากลิสต์คำศัพท์ DFS จากทุกเซลล์บนบอร์ด ตาม Trie

  19. แปลงจำนวนเต็มเป็นคำอ่านภาษาอังกฤษใน Python

    กำหนดจำนวนเต็มระหว่าง 0 ถึง 2^31 - 1 ต้องแปลงเป็นคำอ่านภาษาอังกฤษ เช่น 512 → Five Hundred Twelve ขั้นตอนการแก้ปัญหา สร้างลิสต์คำสำหรับตัวเลข < 20, ทศนิยม (twenty, thirty...), และหน่วยใหญ่ (thousand, million, billion) ฟังก์ชัน helper(n) แปลง n < 1000 เป็นคำ ฟังก์ชันหลัก: แบ่งจำนวนเป็นกลุ่มละ 3

  20. ตรวจสอบรหัสผ่านที่แข็งแกร่งใน Python

    กำหนดสตริง password ต้องหาจำนวนการเปลี่ยนแปลงขั้นต่ำเพื่อให้รหัสผ่านแข็งแกร่ง โดยมีเกณฑ์: ความยาว 6-20 ตัวอักษร ต้องมีตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ และตัวเลข อย่างน้อย 1 ตัว ห้ามมีตัวอักษรซ้ำ 3 ตัวติดกัน (เช่น aaa, PPP, 888) ตัวอย่าง: aa26bbb → ต้องเปลี่ยนอย่างน้อย 1 ครั้ง (ไม่มีตัวพิมพ์ใหญ่ และมี b ซ

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