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

    สมมติว่าเรามีจำนวนเต็ม n แทนจำนวนที่นั่งในเครื่องบิน ผู้โดยสารคนแรกสูญเสียตั๋ว จึงเลือกที่นั่งสุ่ม ผู้โดยสารคนอื่นมีตั๋วแต่ถ้าที่นั่งของพวกเขาถูกจองแล้ว จะเลือกที่นั่งว่างสุ่ม เราต้องหาความน่าจะเป็นที่คนสุดท้ายได้ที่นั่งที่จัดสรรให้ เช่น ถ้าอินพุตคือ n = 5 ผลลัพธ์จะเป็น 0.5 คำตอบคงที่เสมอเมื่อมีมากก

  2. โปรแกรมตรวจสอบว่ามีคู่คำที่คล้ายกันเกือบเหมือนกันหรือไม่ใน Python

    สมมติว่าเรามีรายการสตริงพิมพ์เล็กชื่อ words ที่แต่ละคำมีความยาวเท่ากัน เราต้องตรวจสอบว่ามีสตริงสองตัวที่ต่างกันเพียงตัวอักษรเดียวหรือไม่ เช่น ถ้าอินพุตคือ words = [seed, pick, lick, root, live] ผลลัพธ์จะเป็น True เพราะ pick และ lick คล้ายกันเกือบเหมือนกัน ขั้นตอนการแก้ปัญหา s := เซตใหม่ สำหรับแต่ละ

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

    สมมติว่าเรามีสตริงพิมพ์เล็กชื่อ s และรายการคู่ชื่อ pairs แต่ละสมาชิกใน pairs มีสองสตริง [a, b] โดยตัวอักษร a และ b ถือว่าเหมือนกัน หากมีคู่ [a, b] และ [b, c] แล้ว a และ b เทียบเท่า b และ c เทียบเท่า ดังนั้น a และ c ก็เทียบเท่า และค่าใดๆ ก็เทียบเท่ากับตัวมันเอง เราต้องตรวจสอบว่า s เป็นพาลินโดรมหรือไม

  4. โปรแกรมหาจำนวนคนสูงสุดที่ทำให้พอใจได้ใน Python

    สมมติว่าเรามีรายการ customers และ mood ความยาวเท่ากัน และจำนวนเต็ม k ในแต่ละนาที i มีลูกค้า customers[i] คนมาที่ร้าน และ mood[i] = 1 แสดงว่าลูกค้าพอใจ mood[i] = 0 แสดงว่าเสียใจ เราสามารถตั้งค่าสับลิสต์ขนาด k ของ mood ให้เป็น 1 ทั้งหมด สุดท้ายเราต้องหาจำนวนคนสูงสุดที่ทำให้พอใจได้ เช่น ถ้าอินพุตคือ cu

  5. โปรแกรมตรวจสอบจำนวนคิวรี่ที่พบลำดับเลขคณิตถูกต้องใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ nums และรายการคิวรี่ (queries) ที่แต่ละสมาชิกเป็น [i, j] คิวรี่นี้ถามว่าสับลิสต์ของ nums จาก [i, j] (รวมทั้งสองข้าง) เป็นลำดับเลขคณิต (arithmetic sequence) หรือไม่ เราต้องหาจำนวนคิวรี่ที่คืนค่า true เช่น ถ้าอินพุตคือ nums = [2, 4, 6, 8, 7, 6, 5, 2], queries = [[3, 4], [

  6. โปรแกรมปรับสมดุลสตริงทิศทางให้แต่ละทิศทางเกิดขึ้น n/4 ครั้งใน Python

    สมมติว่าเรามีสตริง s ที่มี 4 ทิศทาง N, S, W และ E แทนเหนือ ใต้ ตะวันตก ตะวันออก เราต้องหาขนาดของสับสตริงสั้นที่สุดที่สามารถแก้ไขได้ เพื่อให้แต่ละทิศทางเกิดขึ้น n/4 ครั้ง โดย n คือขนาดของสตริง s เช่น ถ้าอินพุตคือ s = NNSWWESN ผลลัพธ์จะเป็น 1 ที่นี่ n = 8 ดังนั้น 8/4 = 2 ถ้าเปลี่ยน N ตัวสุดท้ายเป็น E

  7. โปรแกรมหารายการแสดงระยะทางรวมในการย้ายลูกบอลทั้งหมดไปตำแหน่งปัจจุบันใน Python

    สมมติว่าเรามีรายการไบนารีชื่อ nums มีแค่ 0 และ 1 โดย 0 แสดงเซลล์ว่าง และ 1 แสดงเซลล์ที่มีลูกบอล เราต้องหารายการใหม่ชื่อ L ขนาดเท่ากับ nums โดย L[i] คือระยะทางรวมที่ต้องใช้ย้ายลูกบอลทั้งหมดไปที่ L[i] ระยะทางย้ายลูกบอลจากดัชนี j ไป i คือ |j - i| เช่น ถ้าอินพุตคือ nums = [1, 1, 0, 1] ผลลัพธ์จะเป็น [4,

  8. โปรแกรมหาจำนวนสับลิสต์ที่ผลรวมเท่ากับ k ในรายการไบนารีใน Python

    สมมติว่าเรามีรายการไบนารีที่มีแค่ 0 และ 1 เรายังมีอินพุตอีกตัวคือ k เราต้องหาจำนวนสับลิสต์ (sublist) ที่ผลรวมเท่ากับ k เช่น ถ้าอินพุตคือ nums = [1, 0, 0, 1, 1, 1, 0, 1], k = 3 ผลลัพธ์จะเป็น 8 เพราะสับลิสต์คือ [1,0,0,1,1], [0,0,1,1,1], [0,0,1,1,1,0], [0,1,1,1], [0,1,1,1,0], [1,1,1], [1,1,1,0], [1,1,0

  9. โปรแกรมหา Bitwise AND ของช่วงตัวเลขใน Python

    สมมติว่าเรามีค่า start และ end เราต้องหา Bitwise AND ของตัวเลขทั้งหมดในช่วง [start, end] (รวมทั้งสองข้าง) เช่น ถ้าอินพุตคือ start = 8, end = 12 ผลลัพธ์จะเป็น 8 เพราะ 8 คือ 1000 ในไบนารี และ 12 คือ 1100 ดังนั้น 1000 AND 1001 AND 1010 AND 1011 AND 1100 = 1000 ซึ่งคือ 8 ขั้นตอนการแก้ปัญหา n := end - s

  10. โปรแกรมตรวจสอบว่าหุ่นยนต์เคลื่อนที่อยู่ในกล่องจำกัดหรือไม่ใน Python

    สมมติว่าเรามีสตริง s แสดงการเคลื่อนที่ของหุ่นยนต์ หุ่นยนต์อยู่ที่ (0, 0) หันหน้าไปทางเหนือ สตริง s อาจมีตัวอักษร: F เดินหน้าหนึ่งหน่วย L หมุนซ้าย 90 องศา R หมุนขวา 90 องศา ถ้าหุ่นยนต์ทำตามการเคลื่อนที่ใน s ซ้ำๆ เราต้องตรวจสอบว่ามีกล่องในระนาบที่หุ่นยนต์ไม่เคยออกจากไปหรือไม่ เช่น ถ้าอินพุตคือ s = F

  11. โปรแกรมหาจำนวนคู่ที่ผลรวมกำลังสองอยู่ในช่วงที่กำหนดใน Python

    สมมติว่าเรามีรายการตัวเลขสองรายการ nums1 และ nums2 พร้อมกับตัวเลข lower และ upper เราต้องหาจำนวนคู่ (i, j) ที่ทำให้ lower <= nums1[i]^2 + nums2[j]^2 <= upper เช่น ถ้าอินพุตคือ nums1 = [5, 3, 2], nums2 = [8, 12, 6], lower = 10, upper = 50 ผลลัพธ์จะเป็น 2 เพราะคู่คือ (1, 2) และ (2, 2): 10 <= 3^2 + 6^

  12. โปรแกรมนับจำนวนรูปแบบการวางอิฐแนวนอนจากชุดอิฐใน Python

    สมมติว่าเรามีรายการตัวเลขชื่อ bricks และค่าอีกสองค่า width และ height แต่ละสมาชิก bricks[i] แสดงอิฐที่มีความยาว bricks[i] หน่วย และความกว้าง 1 หน่วย เราต้องหาจำนวนวิธีการวางอิฐให้ได้การจัดวางเต็มรูปแบบตาม width และ height ที่กำหนด สามารถนำอิฐมาใช้ซ้ำได้ แต่วางได้เฉพาะแนวนอนเท่านั้น เช่น ถ้าอินพุตคือ

  13. โปรแกรมหาสตริงสุดท้ายหลังเลื่อนตัวอักษรตามจำนวนตำแหน่งที่กำหนดใน Python

    สมมติว่าเรามีสตริงพิมพ์เล็ก s และรายการจำนวนเต็มชื่อ shifts ที่มีความยาวเท่ากับความยาวของ s แต่ละสมาชิก shifts[i] บอกให้เลื่อนตัวอักษร i+1 ตัวแรกของ s จำนวน shifts[i] ตำแหน่ง หากเลื่อนเกิน z จะวนกลับมาที่ a เราต้องหาสตริงผลลัพธ์หลังนำไปใช้ shifts กับ s เช่น ถ้าอินพุตคือ s = tomato, shifts = [2, 5, 2

  14. โปรแกรมนับจำนวนตัวอักษรในแต่ละระดับของวงเล็บใน Python

    สมมติว่าเรามีสตริง s ประกอบด้วยตัวอักษร 3 ตัวคือ X, (, และ ) สตริงมีวงเล็บสมดุล และระหว่างนั้นมี X อยู่ พร้อมกับวงเล็บซ้อนที่อาจเกิดขึ้นซ้ำ เราต้องหาจำนวน X ในแต่ละระดับของวงเล็บใน s เริ่มจากระดับตื้นสุดไปสู่ระดับลึกสุด เช่น ถ้าอินพุตคือ s = (XXX(X(XX))XX) ผลลัพธ์จะเป็น [5, 1, 2] ขั้นตอนการแก้ปัญหา

  15. โปรแกรมตรวจสอบว่ามีเส้นทางไปข้างหน้าในรายการวนรอบแบบวงกลมหรือไม่ใน Python

    สมมติว่าเรามีรายการวงกลมชื่อ nums ดังนั้นสมาชิกแรกและสุดท้ายจึงเป็นเพื่อนบกัน เริ่มจากดัชนีใดๆ ว่า i เราสามารถเคลื่อนที่ไปข้างหน้า nums[i] ขั้น หาก nums[i] เป็นค่าบวก หรือถอยหลังหากเป็นค่าลบ เราต้องตรวจสอบว่ามีรูปทรงวงจร (cycle) ที่ความยาวมากกว่าหนึ่ง ซึ่งเส้นทางไปเฉพาะข้างหน้าหรือเฉพาะถอยหลังเท่านั

  16. โปรแกรมตรวจสอบว่าสามารถรันงานทั้งหมดด้วยโคร์เซิร์ฟเวอร์ที่มีได้หรือไม่ใน Python

    สมมติว่าเรามีสองรายการ คือ cores และ tasks โดย cores[i] แสดงจำนวนโคร์ที่มีในเซิร์ฟเวอร์ตัวที่ i และ tasks[i] แสดงจำนวนโคร์ที่ต้องใช้รันงานตัวนั้น แต่ละงานต้องรันบนเซิร์ฟเวอร์เพียงตัวเดียว แตเซิร์ฟเวอร์หนึ่งอาจรันงานได้หลายงาน เราต้องตรวจสอบว่าสามารถรันงานทั้งหมดด้วยโคร์ที่มีได้หรือไม่ เช่น ถ้าอินพุต

  17. โปรแกรมหาเหรียญสูงสุดจากเมทริกซ์เหรียญหายไปใน Python

    สมมติว่าเรามีเมทริกซ์ 2 มิติ ที่แต่ละเซลล์ matrix[r, c] แสดงจำนวนเหรียญในเซลล์นั้น เมื่อเราหยิบเหรียญจาก matrix[r, c] เหรียญทั้งหมดในแถว (r-1) และ (r+1) จะหายไป รวมถึงเหรียญที่เซลล์ matrix[r, c+1] และ matrix[r, c-1] เราต้องหาจำนวนเหรียญสูงสุดที่เก็บได้ เช่น ถ้าอินพุตคือ: 2876 101042 5923 ผลลัพธ์

  18. โปรแกรมตรวจสอบว่ามีโหนดร่วมที่ไปถึงได้ในกราฟหรือไม่ใน Python

    สมมติว่าเรามีรายการขอบ (edge list) ของกราฟทิศทาง มี n โหนด ชื่อโหนดคือ 0 ถึง n-1 เรายังมีค่าจำนวนเต็มสองค่า a และ b เราต้องตรวจสอบว่ามีโหนด c ใดๆ ที่สามารถไปจาก c ไป a และจาก c ไป b ได้หรือไม่ เช่น ถ้าอินพุตเป็นกราฟดังภาพ และ a = 2, b = 3 ผลลัพธ์จะเป็น True เพราะ c = 0 มีเส้นทางจาก 0 ไป 2 และ 0 ไป 3

  19. โปรแกรมหาผลคูณสเกลาร์ของเวกเตอร์ที่เข้ารหัสแบบ Run-Length ใน Python

    สมมติว่าเรามีสองรายการ nums1 และ nums2 แต่ละรายการแสดงเวกเตอร์ในรูปแบบ Run-Length Encoding ตัวอย่างเช่น เวกเตอร์ [1, 1, 1, 2, 2, 2, 2] แสดงเป็น [3, 1, 4, 2] (เพราะมี 1 สามตัว และ 2 สี่ตัว) เราต้องหาผลคูณสเกลาร์ (dot product) ของเวกเตอร์ทั้งสอง (ผลรวมของการคูณสมาชิกแต่ละคู่ในสองเวกเตอร์) เช่น ถ้าอินพ

  20. โปรแกรมจัดกลุ่ม 1 ให้อยู่ติดกันด้วยการสลับน้อยที่สุดใน Python

    สมมติว่าเราได้รับสตริงไบนารี input_str ที่ประกอบด้วย 0 และ 1 งานคือจัดกลุ่ม 0 และ 1 ให้อยู่ติดกันโดยการสลับ 1 ในสตริงที่กำหนด ต้องทำการสลับน้อยที่สุด และคืนค่าจำนวนครั้งที่สลับ สิ่งสำคัญคือ สลับได้เฉพาะค่าที่อยู่ติดกันเท่านั้น เช่น ถ้าอินพุตคือ input_str = 10110101 ผลลัพธ์จะเป็น 4 การสลับจะเป็นดังนี

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:389/451  20-คอมพิวเตอร์/Page Goto:1 383 384 385 386 387 388 389 390 391 392 393 394 395