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

    สมมติว่ามีอาร์เรย์ nums ต้องหาจำนวนการสลับ (swap) น้อยที่สุดเพื่อเรียงลำดับ nums ให้เรียงได้ทั้งจากน้อยไปมากหรือมากไปน้อย ตัวอย่าง: nums = [2,5,6,3,4] ผลลัพธ์ 2 เพราะสลับ 6↔4 ได้ [2,5,4,3,6] แล้วสลับ 5↔3 ได้ [2,3,4,5,6] วิธีแก้ปัญหา ฟังก์ชัน swap_count(input_arr): pos := sorted(enumerate(input_arr

  2. โปรแกรมหาตัวเลขที่มีความต่างระหว่างหลักติดกันเท่ากันใน Python

    สมมติว่าต้องหาอาร์เรย์ขนาด N ที่ความต่างสัมบูรณ์ระหว่างหลักติดกันทุกคู่เท่ากับ K ตัวเลขทุกตัวต้องไม่มีศูนย์นำหน้า (ยกเว้น 0 เอง) ตัวอย่าง: N = 4, K = 7 ผลลัพธ์ [1818, 2929, 7070, 8181, 9292] (ไม่รวม 0707 เพราะมีศูนย์นำหน้า) วิธีแก้ปัญหา (BFS) ถ้า N == 1 คืน 0..9 queue := deque(1..9) วน N-1 รอบ: ดึ

  3. โปรแกรมหาจำนวนวงเล็บน้อยที่สุดที่ต้องลบเพื่อให้ถูกต้องใน Python

    สมมติว่ามีสตริง s ประกอบด้วยวงเล็บ (, ) และตัวอักษรภาษาอังกฤษพิมพ์เล็ก ต้องลบวงเล็บน้อยที่สุดเพื่อให้สตริงที่เหลือเป็นวงเล็บที่ถูกต้อง (valid parentheses) วงเล็บถูกต้องหมายถึง: สตริงว่างหรือมีแต่ตัวอักษร เป็น AB โดย A, B ถูกต้อง เป็น (A) โดย A ถูกต้อง ตัวอย่าง: s = m)n(o)p ผลลัพธ์ mn(o)p วิธีแก้ปั

  4. โปรแกรมหาผลรวมของซับสตริงทั้งหมดของตัวเลขที่ให้มาเป็นสตริงใน Python

    สมมติว่ามีตัวเลขในรูปสตริง s ต้องหาผลรวมของซับสตริง (substring) ทุกตัวของ s คำตอบอาจใหญ่ ให้คืนค่ามอดุลลอ 10^9 + 7 ตัวอย่าง: s = 268 ผลลัพธ์ 378 เพราะซับสตริงคือ 2, 6, 8, 26, 68, 268 ผลรวม = 378 วิธีแก้ปัญหา M := 10^9 + 7 sum_val := 0, B := 1, res := 0 วน i จาก len(s)-1 ลง 0: res = (res + int(s[i]

  5. โปรแกรมตรวจสอบว่าสองประโยคคล้ายกันหรือไม่ใน Python

    สมมติว่ามีประโยค s และ t ต้องตรวจสอบว่าคล้ายกันหรือไม่ สองประโยคคล้ายกันเมื่อสามารถเพิ่มประโยคอะไรก็ได้ (อาจว่าง) ลงในประโยคหนึ่ง ทำให้ทั้งสองเหมือนกัน ตัวอย่าง: s = we live at city Kolkata, t = city Kolkata ผลลัพธ์ True เพราะเพิ่ม we live at เข้า t ได้ s วิธีแก้ปัญหา s1 := s.split(), s2 := t.split

  6. โปรแกรมแปลงเวลาชั่วโมง-นาทีเป็นข้อความใน Python

    สมมติว่ามีอินพุต hour และ minutes ต้องแสดงเวลาเป็นข้อความ เช่น: 8:00 → eight o clock 8:01 → one minute past eight 8:10 → ten minutes past eight 8:15 → quarter past eight 8:30 → half past eight 8:40 → twenty minutes to nine 8:45 → quarter to nine 8:47 → thirteen minutes to nine ตัวอย่าง: h = 9, m =

  7. โปรแกรมนับคู่ที่ดี (nice pairs) ในอาร์เรย์ใน Python

    สมมติว่ามีอาร์เรย์ nums ค่าไม่เป็นลบ ต้องหาจำนวนคู่ดัชนี (i, j) ที่เป็น nice โดยเงื่อนไข: 0 <= i < j < len(nums) nums[i] + rev(nums[j]) == nums[j] + rev(nums[i]) หมายเหตุ: rev() กลับตัวเลขส่วนบวกเท่านั้น เช่น rev(564) = 465, rev(540) = 45 ตัวอย่าง: nums = [97,2,42,11] ผลลัพธ์ 2 คู่คือ (0,

  8. โปรแกรมหาผลรวมความคล้ายคลึงของสตริงกับซัฟฟิกซ์ทั้งหมดใน Python

    สมมติว่ามีสตริง s ต้องการหาผลรวมของความคล้ายคลึง (similarity) ระหว่าง s กับซัฟฟิกซ์ (suffix) ทุกตัวของมันเอง ความคล้ายคลึงระหว่างสองสตริงคือความยาวของคำนำหน้า (prefix) ที่ยาวที่สุดที่เหมือนกัน ตัวอย่าง: s = pqpqpp ผลลัพธ์คือ 11 เพราะซัฟฟิกซ์คือ pqpqpp, qpqpp, pqpp, qpp, pp, p ความคล้ายคลึงคือ 6,0,3,

  9. โปรแกรมรวมสตริงสองตัวเพื่อให้ได้ลำดับเล็กซิโครกราฟิกมากที่สุดใน Python

    สมมติว่ามีสตริง s และ t เราต้องสร้างสตริง merge ดังนี้: כל עוד s หรือ t ไม่ว่าง ให้เลือกหนึ่งในสองทางเลือก: ถ้า s ไม่ว่าง ให้นำตัวอักษรแรกของ s ต่อท้าย merge และลบออกจาก s ถ้า t ไม่ว่าง ให้นำตัวอักษรแรกของ t ต่อท้าย merge และลบออกจาก t หา merge ที่มีลำดับเล็กซิโครกราฟิก (lexicographically) มากที่ส

  10. โปรแกรมหาความต่างสัมบูรณ์รวมขั้นต่ำใน Python

    สมมติว่ามีอาร์เรย์ nums1 และ nums2 ขนาดเท่ากัน และมีค่าบวก ความต่างสัมบูรณ์รวมคือผลรวมของ |nums1[i] - nums2[i]| สำหรับทุก i ตอนนี้เราสามารถแทนที่องค์ประกอบใน nums1 ได้มากสุด 1 ตัวด้วยองค์ประกอบอื่นใน nums1 เพื่อลดความต่างสัมบูรณ์รวมให้น้อยที่สุด ต้องคืนค่าความต่างสัมบูรณ์รวมขั้นต่ำหลังแทนที่ (มอดุลล

  11. โปรแกรมนับจำนวนซับอาร์เรย์ที่มีจำนวนคี่เท่ากับ k ใน Python

    สมมติว่ามีอาร์เรย์ nums และค่า k เราต้องหาจำนวนซับอาร์เรย์ที่เป็น nice โดยซับอาร์เรย์จะเป็น nice ถ้ามีจำนวนเลขคี่อยู่ในซับอาร์เรย์นั้นเท่ากับ k ตรงๆ ตัวอย่าง: nums = [1,1,2,1,1], k = 3 ผลลัพธ์คือ 2 เพราะมีซับอาร์เรย์ 2 ตัวคือ [1,1,2,1] และ [1,2,1,1] วิธีแก้ปัญหา odd_i := รายการใหม่ วน i จาก 0 ถึง ข

  12. โปรแกรมหาความยาวส่วนต่อเนื่องฟิบонаชชีสูงสุดใน Python

    สมมติว่ามีลำดับ X_1, X_2, ..., X_n เรียกว่าฟิบอนาชชี-ลักษณะ (fibonacci-like) หาก: n >= 3 X_i + X_{i+1} = X_{i+2} สำหรับทุก i + 2 <= n ถ้ามีอาร์เรย์ A ที่เพิ่มขึ้นอย่างเคร่งครัด เราต้องหาความยาวของส่วนต่อเนื่อง (subsequence) แบบฟิบอนาชชีที่ยาวที่สุดของ A หากไม่มี ให้คืนค่า 0 ตัวอย่าง: A = [1,

  13. โปรแกรมหาค่า XOR สูงสุดสำหรับแต่ละคิวรีใน Python

    สมมติว่าเรามีอาร์เรย์ที่เรียงลำดับไว้แล้วชื่อ nums ขนาด n และมีค่า m เราต้องการดำเนินการคิวรี n ครั้ง ดังนี้: ค้นหาค่า k ที่ไม่เป็นลบและน้อยกว่า 2^m ทำให้ค่า XOR ของทุกองค์ประกอบใน nums และ k มีค่าสูงสุด ค่า k นี้คือคำตอบของคิวรีที่ i นำองค์ประกอบตัวสุดท้ายออกจากอาร์เรย์ nums ปัจจุบัน เราต้องหาอาร์

  14. โปรแกรมหาจำนวน Ice Cream Bars สูงสุดที่ซื้อได้ใน Python

    ปัญหา อาร์เรย์ costs ราคาไอศกรีมแต่ละแท่ง มีเหรียญ c ต้องการซื้อเยอะที่สุด หา Max จำนวนแท่ง ตัวอย่าง costs = [3,1,4,5,2], c = 10 → Output: 4 ซื้อ Index 0,1,2,4: 3+1+4+2 = 10 อัลกอริทึม (Greedy Sort) Sort Costs เรียงน้อยไปมาก ซื้อจากถูกไปแพ้จนเงินไม่พอ ตัวอย่างโค้ด def solve(costs, c): c

  15. โปรแกรมหาความถี่สูงสุดของ Element หลังเพิ่มค่า k ครั้งใน Python

    ปัญหา อาร์เรย์ nums และ k Operations: เลือก Index ใดๆ เพิ่มค่า 1 หา Max Frequency ของ Element ใด Element หลัง ≤ k Operations ตัวอย่าง nums = [8,3,6], k = 9 → Output: 3 เพิ่ม 3→8 (5 ops), 6→8 (2 ops) → [8,8,8] ใช้ 7 ops ≤ 9, Freq = 3 อัลกอริทึม (Sliding Window + Sort) Sort Array Sliding Window

  16. โปรแกรมหา Substring ยาวที่สุดของ Vowels เรียงลำดับใน Python

    ปัญหา สตริง s ประกอบด้วย Vowels เท่านั้น หา Substring Beautiful ยาวที่สุด: 1) มี Vowels ครบ 5 ตัว (a,e,i,o,u) 2) เรียงตามลำดับอักษร (a...e...i...o...u) คืนความยาว ตัวอย่าง s = aaioaaaaeiiouuooaauu → Output: 10 Substring: aaaaeiiouu (a×4, e×1, i×2, o×1, u×2) อัลกอริทึม (Two Pointers + State Machine

  17. โปรแกรมหา Subsequence Sum ใกล้เคียง Target มากที่สุดใน Python

    ปัญหา อาร์เรย์ nums และ Target Goal เลือก Subsequence ให้ Sum ใกล้ Goal มากที่สุด (Minimize |Sum - Goal|) ตัวอย่าง nums = [8,-8,16,-1], goal = -3 → Output: 2 Subsequence [8,-8,-1] Sum = -1, |(-1) - (-3)| = 2 อัลกอริทึม (Meet-in-the-Middle + Pruning) Sort nums ตาม |Value| Descending (ค่าสำคัญก่อ

  18. โปรแกรมหา K น้อยที่สุดสำหรับ K-Similar Strings ใน Python

    ปัญหา สตริง s, t เป็น Anagrams K-Similar: สลับตัวอักษรใน s ทั้งหมด K ครั้ง ได้ t หา K น้อยที่สุด ตัวอย่าง s = abc, t = bac → Output: 1 (Swap a↔b) อัลกอริทึม (BFS + Pruning) BFS จาก s: State = String, Level = Swap Count i ที่ s[j] == t[i] Pruning: Swap เฉพาะที่แก้ไข Mismatch แรก (Optimal)

  19. โปรแกรมจัดการการจองที่นั่ง (Seat Reservation Manager) ใน Python

    ปัญหา ออกแบบระบบจองที่นั่ง n ที่นั่ง (1 ถึง n) เริ่มต้นว่าทุกที่ รองรับ: Reserve() → ที่นั่งว่างเลขน้อยที่สุด, Unreserve(seatNumber) → ยกเลิกการจอง ตัวอย่าง SeatReserveManager(7) reserve() → 1, reserve() → 2, reserve() → 3 unreserve(2), unreserve(5) (5 ยังไม่จอง) reserve() → 2, reserve() → 5 อัลกอ

  20. โปรแกรมหา Element สูงสุดหลังลดค่าและเรียงใหม่ใน Python

    ปัญหา อาร์เรย์ arr Operations: 1) ลดค่า Element ใดๆ ให้เล็กลง (Positive) 2) เรียงใหม่ได้ทุกอย่าง เงื่อนไข: arr[0]=1, |arr[i]-arr[i-1]| ≤ 1 หา Max Value ที่เป็นไปได้ ตัวอย่าง arr = [3,3,2,3,2] → Output: 3 ลดตัวสุดท้ายเป็น 1 → [3,3,2,3,1] → เรียง: [1,2,3,3,3] Max = 3 อัลกอริทึม (Greedy Sort + Cap)

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:365/451  20-คอมพิวเตอร์/Page Goto:1 359 360 361 362 363 364 365 366 367 368 369 370 371