Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. ตรวจสอบว่า Array สามารถเรียงลำดับได้โดยการ Rotate หรือไม่ด้วย Python

    สมมติมี List nums ต้องเช็คว่า Rotate (ย้ายส่วนท้ายไปหน้า) ได้ Sorted Array หรือไม่ เช่น Input nums = [4,5,6,1,2,3] Output True (Rotate 3 ตัวท้ายไปหน้าได้ [1,2,3,4,5,6]) ขั้นตอนแก้: ถ้า Sorted แล้ว Return True nums[i+1] (จุดหัก) เช็คส่วนที่สอง (i+1 ถึงจบ) เรียงแล้วหรือไม่ เช็ค nums[-1] <= nums[0]

  2. ตรวจสอบว่าสามารถอยู่รอดบนเกาะได้หรือไม่ด้วย Python

    เกาะมีร้านเดียว ปิดวันอาทิตย์ มีพารามิเตอร์: N (ซื้ออาหารได้สูงสุดวันละ N), S (ต้องอยู่รอด S วัน), M (กินวันละ M) เริ่มวันจันทร์ ต้องเช็คว่าอยู่รอดได้ไหม และหาวันน้อยสุดที่ต้องซื้ออาหาร เช่น Input S = 12, N = 24, M = 3 Output (True, 2) ซื้อวันจันทร์ 24 (พอ 8 วัน) ซื้ออีก 12 (พอ 4 วัน) ขั้นตอนแก้:

  3. ตรวจสอบว่าแปลง String หนึ่งเป็นอีก String ได้หรือไม่ภายใต้เงื่อนไขด้วย Python

    t ได้โดย: 1) เปลี่ยน Lowercase บางตัวเป็น Uppercase 2) ลบ Lowercase ที่เหลือทั้งหมด เช่น Input s = fanToM, t = TOM Output TrueO ลบตัวอื่น) ขั้นตอนแก้ (DP): DP[i][j] = สามารถสร้าง t[:j] จาก s[:i] ได้หรือไม่ DP[0][0] = True DP[i+1][j] = True (ลบ) ตัวอย่างโค้ด def solve(s,t): n = len(s) m

  4. ตรวจสอบว่าแบ่ง Array เป็น K Subarray ต่อเนื่องที่ Sum เท่ากันได้หรือไม่ด้วย Python

    สมมติมี Array nums และค่า K ต้องตรวจสอบว่าแบ่ง nums เป็น K Subarray ต่อเนื่องที่ Sum เท่ากันได้หรือไม่ เช่น Input nums = [2, 5, 3, 4, 7], k = 3 Output True เพราะ [(2,5), (3,4), (7)] Sum = 7 ทุกคู่ ขั้นตอนแก้: คำนวณ Cumulative Sum Total Sum ต้องหาร K ลงตัว Target = Total Sum / K วนหา Partition Poin

  5. ตรวจสอบว่าวัดน้ำหนัก Item ได้หรือไม่ด้วย Scale และ Weights กำลังของ A ด้วย Python

    มีน้ำหนัก a^0, a^1, ..., a^100 (a เป็น Integer) และ Scale ที่วางน้ำหนักได้ทั้งสองข้าง ต้องตรวจสอบว่าวัดน้ำหนัก W ได้หรือไม่ เช่น Input a = 4, W = 17 Output True เพราะ 1 + 16 = 17 (a^0 + a^2) ขั้นตอนแก้ (Backtracking): ถ้า a = 2 หรือ 3 Return True (ทุกจำนวนแทนได้) สร้าง List Weights จนเกิน 10^7 DFS

  6. ตรวจสอบว่า LCM ของ Array หารด้วย Prime Number ลงตัวหรือไม่ด้วย Python

    สมมติมี Array nums และค่า k ต้องตรวจสอบว่า LCM ของ nums หาร k ลงตัวหรือไม่ เช่น Input nums = [12, 15, 10, 75], k = 10 Output True เพราะ LCM = 300 หาร 10 ลงตัว ข้อสังเกต: LCM หาร k ลงตัวก็ต่อเมื่อมี Element อย่างน้อย 1 ตัวใน Array ที่หาร k ลงตัว ขั้นตอนแก้: วนลูป nums: ถ้า nums[i] % k == 0 Return T

  7. ตรวจสอบว่า Leaf Traversal ของ Binary Tree สองต้น เหมือนกันหรือไม่ด้วย Python

    สมมติมี Binary Tree สองต้น ต้องตรวจสอบว่า Leaf Traversal (ลำดับ Leaf จากซ้ายไปขวา) เหมือนกันหรือไม่ Output True ขั้นตอนแก้ (Iterative DFS with Stack): ใช้ Stack s1, s2 สำหรับ Root1, Root2 Pop Node ถ้าไม่ใช่ Leaf Push Right แล้ว Left (เพื่อให้ Left ถูก Process ก่อน) เมื่อเจอ Leaf ทั้งคู่ เปรียบเท

  8. ตรวจสอบว่า Linked List เรียงลำดับ (Iterative และ Recursive) ด้วย Python

    สมมติมี Linked List ต้องเขียน 2 ฟังก์ชันเช็คว่าเรียงจากมากไปน้อย (Non-increasing) แบบ Iterative และ Recursive เช่น Input L = [15, 13, 8, 6, 4, 2] Output True ขั้นตอนแก้: current.next.val ทุกคู่ head.next.val AND solve_rec(head.next) ตัวอย่างโค้ด class ListNode: def __init__(self, data, next

  9. ตรวจสอบว่าตัวอักษร Lowercase และ Uppercase ใน String เรียงลำดับเดียวกันหรือไม่ด้วย Python

    สมมติ String s มีแต่ตัวอักษร (Lower/Upper) ต้องตรวจสอบว่าลำดับของ Lowercase และ Uppercase ตรงกันหรือไม่ (ถ้าตัว Lower ซ้ำ n ครั้ง ตัว Upper ตัวเดียวกันก็ต้องซ้ำ n ครั้ง และลำดับตรงกัน) เช่น Input s = piPpIePE Output True piie.upper() == PPIE ขั้นตอนแก้: แยก Lowercase และ Uppercase ออกเป็น String แ

  10. ตรวจสอบว่า Matrix A แปลงเป็น B ได้โดยเปลี่ยน Parity มุม Submatrix หรือไม่ด้วย Python

    B ได้หรือไม่ เช่น A = [[1,0,0],[1,0,1],[1,0,0]] B = [[0,1,0],[0,1,1],[1,0,0]] Output True (Flip Top-left 2x2) ขั้นตอนแก้ (Greedy): วน i=1..row-1, j=1..col-1: ถ้า A[i][j] != B[i][j] ให้ Flip A[i][j], A[0][0], A[0][j], A[i][0] หลังจบ ตรวจสอบว่า A == B ทุก Element ตัวอย่างโค้ด def solve(mat1, mat2

  11. ตรวจสอบว่า Matrix หนึ่งสามารถแปลงเป็นอีก Matrix ได้โดยการ Transpose Square Sub-matrices หรือไม่ด้วย Python

    สมมติมี Matrix สองตัว N x M ชื่อ mat1 และ mat2 Operation: สามารถ Transpose Square Sub-matrix ใดๆ ใน mat1 ได้ ต้องตรวจสอบว่าได้ mat2 หรือไม่ เช่น mat1 = [[5,6,7],[1,2,3],[6,8,9]] mat2 = [[5,6,2],[1,7,3],[6,8,9]] Output True เพราะ Transpose Top-right 2x2 ของ mat1 ได้ mat2 ขั้นตอนแก้: ตรวจสอบแต่ละ Di

  12. ตรวจสอบว่า Matrix คงที่หลัง Row Reversal หรือไม่ด้วย Python

    สมมติมี Square Matrix ต้องตรวจสอบว่าหาก Reverse ทุก Row แล้ว Matrix เหมือนเดิมหรือไม่ เช่น Matrix 3x3: [[6,8,6], [2,8,2], [3,3,3]] Output True ขั้นตอนแก้: n = จำนวน Row แต่ละ Row: left=0, right=n-1; While left<=right: ถ้า matrix[i][left] != matrix[i][right] Return False; left++, right-- Return Tru

  13. ตรวจสอบว่าตัวอักษรที่พบมากที่สุดใน String หนึ่ง ปรากฏจำนวนครั้งเท่ากันในอีก String หนึ่งหรือไม่ด้วย Python

    สมมติมี String s และ t ต้องหาตัวอักษรที่พบมากที่สุดใน s แล้วเช็คว่าใน t ปรากฏจำนวนครั้งเท่ากันหรือไม่ เช่น Input s = crosssection, t = securesystem Output True เพราะ s พบมากที่สุดใน s (4 ครั้ง) และใน t ก็ 4 ครั้ง ขั้นตอนแก้: นับ Frequency ทุกตัวอักษรใน s หา max_freq_char และ max_freq ถ้า t.count(m

  14. ตรวจสอบว่าภาพกระจกของตัวเลขบน 7-Segment Display เหมือนเดิมหรือไม่ด้วย Python

    สมมติมีตัวเลข n ต้องตรวจสอบว่าภาพกระจก (Mirror Image) บน 7-Segment Display เหมือนตัวเลขเดิมหรือไม่ เช่น Input n = 818 Output True ขั้นตอนแก้: แปลง n เป็น String ทุกหลักต้องเป็น 0, 1, หรือ 8 เท่านั้น (ตัวเลขอื่นกระจกไม่ได้ตัวเอง) เช็ค Palindrome (อ่านจากหน้าหลังเท่ากัน) ตัวอย่างโค้ด def solve(n):

  15. ตรวจสอบว่า Move ใน Stack หรือ Queue ถูกต้องหรือไม่ด้วย Python

    สมมติมี Binary List โดย 1 = Push, 0 = Pop ต้องตรวจสอบว่าลำดับ Operation ถูกต้องหรือไม่ (ไม่ Pop จากโครงสร้างว่าง) เช่น Input nums = [1,0,1,1,0,1] Output True เพราะ Push,Pop,Push,Push,Pop,Push ไม่มี Pop จากว่าง ขั้นตอนแก้: push_count = 0 วนลูป nums: ถ้า 1 push_count++ ถ้า 0 push_count--; ถ้า push_c

  16. ตรวจสอบว่า N สามารถแทนเป็นผลรวมของ A และ B ที่เลือกจากเซต {A, B} ได้หรือไม่ด้วย Python

    สมมติมี Target และตัวเลข A, B ต้องตรวจสอบว่าสามารถบวก A และ B ซ้ำๆ ได้เป็น Target หรือไม่ เช่น Input Target = 26, A = 5, B = 7 Output True เพราะ 7+7+7+5 = 26 ขั้นตอนแก้ (DFS + Memoization): target Return; ถ้า is_ok[x] Return; is_ok[x]=True; เรียก util(x+a) และ util(x+b) Main: สร้าง is_ok Array ขน

  17. ตรวจสอบว่า N เป็น Factorial Prime หรือไม่ด้วย Python

    Factorial Prime คือ จำนวนเฉพาะที่มากกว่าหรือน้อยกว่า Factorial ของจำนวนหนึ่งอยู่ 1 (เช่น n! ± 1) เช่น Input n = 719 Output True เพราะ 719 = 720 - 1 = 6! - 1 ขั้นตอนแก้: ถ้า num ไม่ใช่ Prime Return False factorial = 1, i = 1 While factorial <= num + 1: factorial *= i; ถ้า num+1 == factorial หรือ nu

  18. ตรวจสอบว่า N หารด้วยตัวเลขที่ประกอบด้วยตัวเลขจากเซต {A, B} ลงตัวหรือไม่ด้วย Python

    สมมติมีตัวเลข n และตัวเลข a, b ต้องตรวจสอบว่าสามารถสร้างตัวเลขจาก a และ b ที่หาร n ลงตัวได้หรือไม่ เช่น Input n = 115, a = 3, b = 2 Output True เพราะ 115 หาร 23 ลงตัว (23 ประกอบด้วย 2 และ 3) ขั้นตอนแก้ (Recursive): n Return False; ถ้า n % temp == 0 Return True; Return util(temp*10+a) OR util(temp

  19. ตรวจสอบว่า N หารด้วย 2^k ลงตัวหรือไม่โดยไม่ใช้ Arithmetic Operators ใน Python

    สมมติมีตัวเลข x และ n ต้องตรวจสอบว่า x หารด้วย 2^n ลงตัวหรือไม่ โดยห้ามใช้ Arithmetic Operators เช่น Input x = 32, n = 5 Output True เพราะ 32 = 2^5 ขั้นตอนแก้: ถ้า x AND (2^n - 1) == 0 Return True Return False ตัวอย่างโค้ด def solve(x, n): if (x & ((1 << n) - 1)) == 0: return True

  20. ตรวจสอบว่า N เป็น Strong Prime หรือไม่ด้วย Python

    Strong Prime คือ จำนวนเฉพาะที่มากกว่าค่าเฉลี่ยของจำนวนเฉพาะที่อยู่ติดกันทั้งสองข้าง เช่น Input num = 37 Output True 36 ขั้นตอนแก้: ถ้า num ไม่ใช่ Prime หรือ num == 2 Return False last = num - 1, next = num + 1 While next ไม่ใช่ Prime: next += 1 While last ไม่ใช่ Prime: last -= 1 avg = (last + next

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:220/451  20-คอมพิวเตอร์/Page Goto:1 214 215 216 217 218 219 220 221 222 223 224 225 226