Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python
Python
  1. หา X ให้ XOR ทุกตัวในอาร์เรย์รวมได้น้อยที่สุดใน Python

    ภาพรวม โจทย์หาตัวเลข X ที่ทำให้ผลรวม (A[i] XOR X) น้อยที่สุด ตัวอย่าง A = [3, 4, 5, 6, 7] X = 7 → ผลรวม = (3⊕7)+(4⊕7)+(5⊕7)+(6⊕7)+(7⊕7) = 4+3+2+1+0 = 10 หลักการ: Bitwise Majority พิจารณาแต่ละบิตแยกกัน สำหรับบิต i: นับจำนวน 1 ในบิต i ของทุก A[j] → cnt n/2 → ตั้งบิต i ของ X = 1 (เพื่อให้ XOR กลายเ

  2. หาสตริงระหว่างสองสตริงในลำดับเล็กซิโคกราฟิก Python

    ภาพรวม โจทย์หาสตริงที่มีความยาวเท่ากัน อยู่ระหว่าง S และ T ในลำดับเล็กซิโคกราฟิก (lexicographic order) คืน -1 ถ้าไม่มี ตัวอย่าง S = bbb, T = ddd สตริงถัดไปจาก bbb คือ bbc (บวก 1 ตัวท้าย) → bbc < ddd ✓ → คืน bbc อัลกอริทึม: หาสตริงถัดไป (Next String) เริ่มจากตัวท้าย (rightmost) ถ้าไม่ใช่ z → เพิ่ม

  3. หาตัวหารร่วมของทุกตัวยกเว้น 1 ตัวในอาร์เรย์ Python

    ภาพรวม โจทย์หาตัวเลข B ที่เป็นตัวหารของทุกสมาชิกในอาร์เรย์ ยกเว้นเพียง 1 ตัวเท่านั้น (GCD ของ n-1 ตัว) ตัวอย่าง อินพุต: [8, 16, 4, 24] GCD ของ [8,16,24] = 8 (ไม่หาร 4 ลงตัว) → 8 อัลกอริทึม Prefix/Suffix GCD สร้าง prefix_gcd[i] = GCD(arr[0..i]) สร้าง suffix_gcd[i] = GCD(arr[i..n-1]) สำหรับแต่ละ i

  4. พลิกหลัก 123 ให้ได้ค่าสูงสุดใน Python

    ภาพรวม โจทย์: ตัวเลขประกอบด้วยหลัก 1,2,3 เท่านั้น ได้พลิกหลักหนึ่งหลักเป็น 3 หาค่าสูงสุดที่เป็นไปได้ ตัวอย่าง อินพุต: 11332 หลักแรกที่ไม่ใช่ 3 คือหลักแรก (1) → พลิกเป็น 3 → 31332 กลยุทธ์ พลิกหลักซ้ายสุดที่ไม่ใช่ 3 จะให้ค่าเพิ่มมากที่สุด (place value สูงสุด) โค้ด Python class Solution: def sol

  5. เกม 3-6-9 (Clap Game) ใน Python

    ภาพรวม เกม 3-6-9 (เกาหลี): นับ 1 ถึง n แต่ถ้าตัวเลขหาร 3 ลงตัว หรือ มีหลัก 3,6,9 → พูด clap แทน (โค้ดต้นฉบับใช้ no-fill) ตัวอย่าง n=20 [1, 2, clap, 4, 5, clap, 7, 8, clap, 10, 11, clap, clap, 14, clap, clap, 17, clap, clap, 20] โค้ด Python class Solution: def solve(self, n): string =

  6. ตรวจสอบตัวเลขเป็นผลรวมของ 3 และ 7 ใน Python

    ภาพรวม โจทย์ตรวจสอบว่าตัวเลข n สามารถเขียนในรูป 3a + 7b ได้หรือไม่ โดย a,b เป็นจำนวนเต็มไม่ติดลบ (Non-negative multiples of 3 and 7) ตัวอย่าง n = 13 → 1×7 + 2×3 = 7 + 6 = 13 → True อัลกอริทึม ลอง b = 0, 7, 14, ... (เพิ่มทีละ 7) ตรวจสอบว่า n - b หาร 3 ลงตัวหรือไม่ for i in range(0, n+1, 7): if

  7. คำนวณเวล 배ตเตอรี่ Eco Mode ใน Python

    ภาพรวม โจทย์คำนวณเวลาที่แบตเตอรี่เหลือจนหมด โดยมี eco mode ที่เปิดเมื่อเหลือ 20% ทำให้ใช้พลังงานช้าลง 2 เท่า ตัวอย่าง t = 75 นาที, p = 25% เหลือ จาก 100% → 25% ใช้ 75 นาที (โหมดปกติ) อัตราโหมดปกติ: 75% / 75 นาที = 1%/นาที Eco mode (≤20%): 0.5%/นาที เหลือ 25%: 5% ในโหมดปกติ (5 นาที) + 20% ใน eco (40

  8. สร้าง Acronym จากข้อความใน Python

    ภาพรวม โจทย์สร้าง acronym (ตัวย่อ) จากประโยค โดยเอาตัวอักษรแรกของแต่ละคำ (ยกเว้นคำ and) และแปลงเป็นตัวใหญ่ทั้งหมด ตัวอย่าง อินพุต: Indian Space Research Organisation คำ: Indian, Space, Research, Organisation ตัวอักษรแรก: I, S, R, O → ISRO โค้ด Python class Solution: def solve(self, s):

  9. บวกนาทีให้เวลา 12 ชั่วโมงใน Python

    ภาพรวม โจทย์บวก n นาทีให้เวลาในรูปแบบ 12 ชั่วโมง (มี am/pm) คืนเวลาใหม่ในรูปแบบเดิม ตัวอย่าง อินพุต: 8:20pm, n = 150 นาที 8:20pm = 20:20 (24h) +150 นาที = 20:20 + 2:30 = 22:50 22:50 = 10:50pm → 10:50pm โค้ด Python class Solution: def solve(self, s, n): h, m = map(int, s[:-2].split(:))

  10. บวก 1 ให้ตัวเลขในรูปแบบลิสต์ digit ใน Python

    ภาพรวม โจทย์บวก 1 ให้ตัวเลขที่แทนด้วยลิสต์ของหลัก (digits) เช่น [2,4,9] = 249 → [2,5,0] ตัวอย่าง อินพุต: [9, 9] (แทน 99) 99 + 1 = 100 → [1, 0, 0] อัลกอริทึม (Grade School Addition) เพิ่ม 0 นำหน้า (guard digit) → [0, 9, 9] บวก 1 ให้หลักสุดท้าย → [0, 9, 10] Propagate carry จากหลังมาหน้า: i=2: 10 →

  11. ตรวจสอบ Anagram ใน Python

    ภาพรวม Anagram คือคำที่ประกอบด้วยตัวอักษรเดียวกัน แต่เรียงลำดับต่างกัน (เช่น listen ↔ silent) ตัวอย่าง s0 = listen, s1 = silent เรียงตัวอักษร: ทั้งคู่ → [e, i, l, n, s, t] → True โค้ด Python class Solution: def solve(self, s0, s1): return sorted(s0) == sorted(s1) ob = Solution() print

  12. ทฤษฎีโบราณนักบินอวกาศ: ตรวจสอบลำดับคำใน Python

    ภาพรวม โจทย์ตรวจสอบว่าสตริง s เรียงตามลำดับพจนานุกรมโบราณ (ancient dictionary order) หรือไม่ โดยพจนานุกรมกำหนดลำดับตัวอักษรที่อนุญาตและลำดับของมัน ตัวอย่าง dictionary = bdc (ลำดับ: b < d < c) s = bbbb h ddd i cccc ตัวอักษรใน dictionary ที่ปรากฏใน s: b, b, b, b, d, d, d, c, c, c, c → เรียงตาม b→d→c

  13. หาคู่ตัวเลขที่ตัวหนึ่งเป็น 3 เท่าอีกตัวใน Python

    ภาพรวม โจทย์ตรวจสอบว่ามีคู่ตัวเลขในลิสต์ที่ตัวหนึ่งเป็น 3 เท่าของอีกตัว (x และ 3x) หรือไม่ ตัวอย่าง อินพุต: [2, 3, 10, 7, 9] เรียง: [2, 3, 7, 9, 10] 3 × 3 = 9 → พบคู่ (3, 9) → True อัลกอริทึม Two Pointers เรียงลิสต์ i=0, j=1 ถ้า 3×nums[i] == nums[j] → พบ nums[j] → j++ (ต้องการค่ามากขึ้น) ถ้า 3×n

  14. ตรวจสอบ Linked List เพิ่มขึ้นอย่างเคร่งครัดใน Python

    ภาพรวม โจทย์ตรวจสอบว่า singly linked list มีค่าเรียงเพิ่มขึ้นอย่างเคร่งครัด (strictly increasing) หรือไม่ คือค่าปัจจุบัน < ค่าถัดไป ทุกคู่ ตัวอย่าง อินพุต: [2, 61, 105, 157] 2 < 61 < 105 < 157 → True โค้ด Python (Recursive) = head.next.val: return False return self.solve(head.n

  15. Atbash Cipher ใน Python

    ภาพรวม Atbash Cipher คือรหัสลับแบบแทนที่ (substitution cipher) ที่แมปตัวอักษรแต่ละตัวเป็นตัวอักษรตรงข้ามในอัลฟาเบท: a↔z, b↔y, c↔x, ..., m↔n ตัวอย่าง abcdefg → zyxwvut hello → svool หลักการ ASCII(a) = 97, ASCII(z) = 122 N = 97 + 122 = 219 ตัวอักษร c → ตัวใหม่ = chr(N - ord(c)) เช่น a (97) → chr(219

  16. ตรวจสอบสตริงที่มีตัวอักษรไม่ซ้ำใน Python

    ภาพรวม โจทย์ตรวจสอบว่าสตริงมีตัวอักษรซ้ำกันหรือไม่ คืน True ถ้าทุกตัวอักษรไม่ซ้ำ (unique) ตัวอย่าง hello → มี l ซ้ำ → False world → ทุกตัวไม่ซ้ำ → True โค้ด Python class Solution: def solve(self, s): set_var = set(s) return len(set_var) == len(s) ob = Solution() print(ob.solve

  17. ตรวจสอบเลขยกกำลัง 2 (Power of Two) ใน Python

    ภาพรวม โจทย์ตรวจสอบว่าจำนวนเต็มบวก n เป็นกำลังของ 2 หรือไม่ (1, 2, 4, 8, 16, 32, ...) ตัวอย่าง อินพุต: 1024 → True (2¹⁰) โค้ด Python (วิธีหาร 2 ซ้ำ) 1: n /= 2 return n == 1 ob = Solution() print(ob.solve(1024)) วิธีที่ดีกว่า: Bit Manipulation 0 and (n & (n - 1)) == 0 อธิบาย

  18. แปลงฐาน 3 เป็นจำนวนเต็มใน Python

    ภาพรวม โจทย์แปลงสตริงที่เป็นตัวเลขฐาน 3 (base 3, ตัวเลข 0,1,2) เป็นจำนวนเต็มฐาน 10 ตัวอย่าง อินพุต: 10122 (ฐาน 3) คำนวณ: 1×3⁴ + 0×3³ + 1×3² + 2×3¹ + 2×3⁰ = 81 + 0 + 9 + 6 + 2 = 98 อัลกอริทึม (Horners Method) ans = 0 for digit in s: ans = 3 * ans + digit ขั้นตอนสำหรับ 10122: ans = 3×0 + 1 = 1

  19. หาตัวเลขที่ใหญ่ที่สุดในแถวและคอลัมน์ของมาทริกซ์ Python

    ภาพรวม โจทย์นับจำนวนเซลล์ในมาทริกซ์ที่มีค่าเป็นค่าสูงสุด (max) ทั้งในแถวและในคอลัมน์ของมัน ตัวอย่าง มาทริกซ์: [[1, 3, 2], [4, 6, 5], [1, 5, 7]] Row max: [3, 6, 7] Col max: [4, 6, 7] เซลล์ที่เป็น max ทั้งแถวและคอลัมน์: (1,1): 6 = row_max[1] และ col_max[1] ✓ (2,2): 7 = row_max[2] และ col_max[2] ✓

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