Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. Unique Morse Code Words ใน Python: นับรหัสโมสที่ไม่ซ้ำกัน

    แต่ละคำสามารถแปลงเป็นรหัสโมสโดยต่อรหัสของแต่ละตัวอักษร ต้องการนับจำนวนรหัสโมสที่ไม่ซ้ำกันจากรายการคำ ตารางรหัสโมส (a-z) [.-,-...,-.-.,-..,.,..-.,--.,....,..,.---, -.-,.-..,--,-.,---,.--.,--.-,.-.,...,-, ..-,...-,.--,-..-,-.--,--..] ตัวอย่าง [gin,zen,gig,msg] → โมส: --...-., --...-., --...--., --

  2. Number of Lines To Write String ใน Python: นับบรรทัดและความกว้างสุดท้าย

    มีสตริง S และอาร์เรย์ widths ที่ widths[0] = ความกว้างของ a, widths[1] = b, ... เขียนตัวอักษรจากซ้ายไปขวา แต่ละบรรทัดกว้างสูงสุด 100 หน่วย หากเกิน → ขึ้นบรรทัดใหม่ ต้องการหา (1) จำนวนบรรทัดที่มีตัวอักษร (2) ความกว้างที่ใช้ในบรรทัดสุดท้าย ตัวอย่าง widths = [4,10,10,...] (a=4, อื่นๆ=10), S = bbbcccdd

  3. Largest Triangle Area ใน Python: หาพื้นที่สามเหลี่ยมมากที่สุดจากจุดบนพื้นที่

    ได้รับรายการจุดบนระนาบ 2 มิติ ต้องการหาพื้นที่ของสามเหลี่ยมที่ใหญ่ที่สุดที่สามารถสร้างได้จากจุดใด ๆ 3 จุด ตัวอย่าง points = [[0,0],[0,1],[1,0],[0,2],[2,0]] → พื้นที่มากที่สุด = 2.0 ขั้นตอนการแก้ปัญหา ใช้สูตรพื้นที่สามเหลี่ยมจากพิกัด 3 จุด: Area = 0.5 * |x1(y2-y3) + x2(y3-y1) + x3(y1-y2)|

  4. Positions of Large Groups ใน Python: หาตำแหน่งกลุ่มตัวอักษรซ้ำ 3 ตัวขึ้นไป

    ได้สตริง S ตัวอักษรพิมพ์เล็ก ตัวอักษรที่ติดกันและเหมือนกันจะเป็น กลุ่ม กลุ่มที่มีขนาด ≥ 3 เรียกว่า กลุ่มใหญ่ ต้องการตำแหน่งเริ่มต้นและสิ้นสุดของทุกกลุ่มใหญ่ ตัวอย่าง S = abcdddeeeeaabbbcd → กลุ่มใหญ่คือ ddd (3-5), eeee (6-9), bbb (12-14) → ผลลัพธ์ [[3,5],[6,9],[12,14]] ขั้นตอนการแก้ปัญหา ใช้ it

  5. Flipping an Image ใน Python: กลับภาพและกลับค่าบิต

    ได้รับเมทริกซ์ไบนารี A แทนภาพ ต้องทำ 2 ขั้นตอน: (1) กลับภาพแนวนอน (reverse แต่ละแถว) (2) กลับค่าบิต (0→1, 1→0) คืนภาพที่ได้ ตัวอย่าง อินพุต: 110 101 000 เอาต์พุต: 100 010 111 ขั้นตอนการแก้ปัญหา สร้างรายการผลลัพธ์ว่าง วนแต่ละแถว: กลับลำดับแถว (row[::-1]) วนแต่ล

  6. Rectangle Overlap ใน Python: ตรวจสอบการทับซ้อนของสี่เหลี่ยม

    สี่เหลี่ยมผืนผ้าแทนด้วยรายการ [x1, y1, x2, y2] โดย (x1, y1) คือมุมล่างซ้าย และ (x2, y2) คือมุมบนขวา สองสี่เหลี่ยมทับซ้อนกันก็ต่อเมื่อพื้นที่การตัดกันเป็นบวก (แค่สัมผัสขอบหรือมุมไม่นับ) ตัวอย่าง R1 = [0,0,2,2], R2 = [1,1,3,3] → True (มีพื้นที่ทับซ้อน) ขั้นตอนการแก้ปัญหา สองสี่เหลี่ยม ไม่ ทับซ้อนกัน

  7. Buddy Strings ใน Python: ตรวจสอบการสลับตัวอักษรเพื่อให้สตริงเท่ากัน

    ได้รับสตริงสองตัว A และ B ที่ประกอบด้วยตัวอักษรพิมพ์เล็ก ตรวจสอบว่าสามารถสลับตัวอักษรสองตำแหน่งใน A ได้เพียงครั้งเดียว เพื่อให้ A เท่ากับ B หรือไม่ ตัวอย่าง A = ba, B = ab → True (สลับ b กับ a) ขั้นตอนการแก้ปัญหา ถ้าความยาวไม่เท่ากัน → False ถ้าตัวอักษรในทั้งสองสตริงไม่ตรงกัน (เรียงลำดับแล้วไ

  8. Lemonade Change ใน Python: ตรวจสอบการให้เงินทอนที่ขายเครื่องดื่ม

    สมมติว่ามีร้านขายน้ำมะนาว ราคาแก้วละ 5 ดอลลาร์ ลูกค้าสิบคิวซื้อทีละคน คนละหนึ่งแก้ว จ่ายด้วยธนบัตร 5, 10 หรือ 20 ดอลลาร์ เราต้องให้เงินทอนถูกต้องให้ทุกคน โดยเริ่มต้นไม่มีเงินทอนเลย ตรวจสอบว่าเราสามารถให้เงินทอนถูกต้องได้ทุกคนหรือไม่ ตัวอย่าง อินพุต [5,5,5,10,20] → ผลลัพธ์ True เพราะ ลูกค้า 3 คนแรกจ

  9. Binary Gap ใน Python: หาระยะห่างสูงสุดระหว่าง 1 ติดกันในรูปแบบไบนารี

    สมมติว่าเรามีจำนวนเต็มบวก N เราต้องการหาระยะห่างที่ยาวที่สุดระหว่าง 1 สองตัวที่ติดกันในรูปแบบไบนารีของ N หากไม่มี 1 ติดกันสองคู่ ให้คืนค่า 0 ตัวอย่าง หากอินพุตคือ 22 ผลลัพธ์จะเป็น 2 เพราะ 22 ในรูปแบบไบนารีคือ 10110 มี 1 ทั้งหมดสามตัว และมีคู่ของ 1 ติดกันสองคู่ คู่แรกมีระยะห่าง 2 คู่ที่สองมีระยะห่าง

  10. Walking Robot Simulation (จำลองการเดินของหุ่นยนต์) ใน Python

    โจทย์: หุ่นยนต์เริ่มต้นที่ (0,0) หันหน้า North รับคำสั่ง: -2 (ซ้าย 90°), -1 (ขวา 90°), 1-9 (เดินหน้า x ก้าว) มี Obstacles บางตำแหน่ง หากชนจะหยุดก่อนชน หาระยะทางยุคลิดยกกำลัง 2 สูงสุดจาก Origin Input/Output Input: commands = [4, -1, 4, -2, 4], obstacles = [[2, 4]] Output: 65 # Path: (0,0)→(0,4)→Tur

  11. Projection Area of 3D Shapes (พื้นที่ฉาย影子ของรูปทรง 3D) ใน Python

    โจทย์: ให้ Grid N×N ค่า v = grid[i][j] แทนหอคอยลูกบาศก์สูง v หาพื้นที่ฉาย影子 (Projection) บน 3 มุมมอง: Top (XY), Front (YZ), Side (ZX) Input/Output Input: [[1, 2], [3, 4]] Output: 17 การคำนวณ 3 มุมมอง XY (Top view): 0 (แต่ละเซลล์ = 1 หน่วยพื้นที่) YZ (Front view): ผลรวมของ Max แต่ละ Row (มองจากหน

  12. Surface Area of 3D Shapes (พื้นที่ผิวรูปทรง 3D) ใน Python

    โจทย์: ให้ Grid N×N ค่า v = grid[i][j] แทนหอคอยลูกบาศก์ 1×1×1 สูง v ชิ้น หาพื้นที่ผิวรวมของรูปทรงที่ได้ Input/Output Input: [[1, 2], [3, 4]] Output: 34 สูตรคำนวณ พื้นที่ผิวรวม = พื้นที่ Top/Bottom + พื้นที่ Side (4 ด้าน) - พื้นที่ที่ติดกัน (Internal faces) Top/Bottom: 0) Side faces: 4 × (ผลรวมคว

  13. Groups of Special-Equivalent Strings (กลุ่มสตริงเทียบเท่าพิเศษ) ใน Python

    โจทย์: สตริง S และ T เป็น Special-Equivalent ถ้าสลับตัวอักษรตำแหน่งคู่ (Even indices) กันได้ หรือสลับตำแหน่งคี่ (Odd indices) กันได้ แล้วเท่ากัน หาจำนวนกลุ่ม Special-Equivalent จาก Array A Input/Output Input: [abcd, cdab, cbad, xyzz, zzxy, zzyx] Output: 3 # Group 1: [abcd, cdab, cbad] (Even: ac/bd

  14. Smallest Range I (ช่วงเล็กที่สุด) ใน Python

    โจทย์: ให้ Array A และค่า K สำหรับแต่ละ A[i] สามารถบวก/ลบ x โดยที่ -K ≤ x ≤ K ได้ ต้องการให้ช่วง (Max - Min) ของ Array ใหม่ B น้อยที่สุด Input/Output Input: A = [0, 10], K = 2 Output: 6 # B = [2, 8] (0+2, 10-2) → Max=8, Min=2, Diff=6 หลักการแก้ปัญหา เพื่อลดช่วงให้น้อยที่สุด: ควรเพิ่มค่า Min ขึ้น

  15. Number of Recent Calls (นับการโทรล่าสุด) ใน Python

    โจทย์: สร้าง Class RecentCounter มีเมธอด ping(t) คืนจำนวน Ping ในช่วง 3000 ms ย้อนหลัง (Inclusive) t เพิ่มขึ้นทุกครั้ง (Strictly increasing) Input/Output ping(1) → 1 ping(100) → 2 ping(3001) → 3 ping(3002) → 3 อัลกอริทึม: Queue (Sliding Window) เก็บ Timestamp ใน Queue (List) เมื่อ Ping ใหม่:

  16. Reorder Data in Log Files (จัดเรียง Log Files) ใน Python

    โจทย์: จัดเรียง Log files ให้ Letter-logs (มีตัวอักษร) อยู่หน้า Digit-logs (มีตัวเลข) Letter-logs เรียง Lexicographically โดยเนื้อหา (Content) ก่อน ตามด้วย Identifier หาก Content เหมือนกัน Digit-logs คงลำดับเดิม Input/Output Input: [dig1 9 2 5 2, let1 art can, dig2 4 8, let2 own kit dig, let3 art

  17. Valid Mountain Array (ตรวจสอบ Array รูปภูเขา) ใน Python

    โจทย์: ตรวจสอบว่า Array เป็น Mountain Array หรือไม่ คือ เพิ่มขึ้นอย่างเคร่งครัด (Strictly increasing) แล้วตามด้วยลดลงอย่างเคร่งครัด (Strictly decreasing) เงื่อนไข Mountain Array ความยาว ≥ 3 มี Peak (ยอดเขา) อยู่ที่ Index i (0 < i < n-1) A[0] < A[1] < ... A[n-1] Input/Output Input: [0, 3, 2, 1]

  18. DI String Match (จับคู่สตริง I/D) ใน Python

    โจทย์: ให้สตริง S ประกอบด้วย I (Increase) และ D (Decrease) หา Permutation ของ [0, 1, ..., N] ที่ทำให้: S[i]==I → A[i] A[i+1] Input/Output Input: IDID Output: [0, 4, 1, 3, 2] อัลกอริทึม (Two Pointers / Greedy) สร้าง Array A = [0, 1, ..., N] ใช้ 2 Pointer: Low = 0, High = N อ่าน S ทีละตัว: I → ใช

  19. Delete Columns to Make Sorted (ลบคอลัมน์ให้เรียงลำดับ) ใน Python

    โจทย์: ให้ Array ของสตริงความยาวเท่ากัน ต้องการลบคอลัมน์ (Column) น้อยที่สุด เพื่อให้คอลัมน์ที่เหลือเรียงลำดับ Non-decreasing (จากบนลงล่าง) Input/Output Input: [cba, daf, ghi] Output: 1 # คอลัมน์ 0: c,d,g (เรียง), คอลัมน์ 1: b,a,h (ไม่เรียง), คอลัมน์ 2: a,f,i (เรียง) # ลบคอลัมน์ 1 ทั้งหมด 1 คอลัมน

  20. Powerful Integers (จำนวนเต็มที่ทรงพลัง) ใน Python

    โจทย์: ให้ x, y เป็นจำนวนเต็มบวก จำนวนเต็ม n ถือว่า Powerful ถ้า n = x^i + y^j โดย i, j ≥ 0 หา Powerful integers ทั้งหมด ≤ bound Input/Output Input: x=2, y=3, bound=10 Output: [2, 3, 4, 5, 7, 9, 10] # 2=2^0+3^0, 3=2^1+3^0, 4=2^0+3^1, 5=2^1+3^1, 7=2^2+3^1, 9=2^3+3^0, 10=2^0+3^2 อัลกอริทึม จัดการก

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