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

    สมมติว่าเรามีลิงค์ลิสต์ เราต้องกลับมัน เช่นถ้าลิสต์เป็น 1 → 3 → 5 → 7 ลิสต์ที่กลับแล้วจะเป็น 7 → 5 → 3 → 1 วิธีการแก้ปัญหา เราจะใช้แนวทางนี้: กำหนดกระบวนการหนึ่งเพื่อทำการกลับลิสต์แบบเรียกซ้ำเป็น solve(head, back) ถ้า head ไม่มีอยู่ ให้คืนค่า head temp := head.next head.next := back back = head ถ้

  2. ตรวจสอบค่าซ้ำใน Python

    สมมติว่าเรามีรายการตัวเลข เราต้องตรวจสอบว่ารายการมีองค์ประกอบซ้ำหรือไม่ เช่นถ้ารายการเป็น [1,5,6,2,1,3] จะคืนค่า 1 เพราะมี 1 สองตัว แต่ถ้ารายการเป็น [1,2,3,4] จะเป็น false เพราะไม่มีค่าซ้ำ ในการแก้ปัญหานี้ เราจะใช้แนวทางนี้: เรารู้ว่าข้อมูลโครงสร้างเซต (set) เก็บข้อมูลที่ไม่ซ้ำกันเท่านั้น แต่วรายก

  3. กลับต้นไม้แบบทวิภาคใน Python

    สมมติว่าเรามีต้นไม้แบบทวิภาค ภารกิจของเราคือสร้างต้นไม้แบบทวิภาคที่กลับด้าน (inverted) เช่นถ้าต้นไม้เป็นแบบด้านล่าง: ต้นไม้ที่กลับด้านจะเป็นแบบ: วิธีการแก้ปัญหา เราจะใช้วิธีการแบบเรียกซ้ำ (recursive) ถ้ารากเป็น null ให้คืนค่า สลับตัวชี้ซ้ายและขวา เรียกซ้ำแก้ปัญหาสำหรับต้นไม้ย่อยซ้ายและขวา ต

  4. ลบโหนดในลิงค์ลิสต์ใน Python

    สมมติว่าเรามีลิงค์ลิสต์ที่มีองค์ประกอบบางส่วน ภารกิจของเราคือเขียนฟังก์ชันที่จะลบโหนดที่กำหนดออกจากลิสต์ เช่นถ้าลิสต์เป็น 1 → 3 → 5 → 7 → 9 และหลังจากลบ 3 จะกลายเป็น 1 → 5 → 7 → 9 พิจารณาว่าเรามีตัวชี้ node ที่ชี้ไปยังโหนดที่จะลบ เราต้องดำเนินการดังนี้เพื่อลบโหนด: node.val = node.next.val node.ne

  5. Anagram ที่ถูกต้องใน Python

    Anagram คือการเรียงสลับทั้งหมดของสตริงหรือรูปแบบที่กำหนด อัลกอริทึมค้นหาแบบนี้แตกต่างออกไปเล็กน้อย ในกรณีนี้ ไม่ได้ค้นหาเฉพาะรูปแบบที่ตรงกัน แต่ค้นหาการจัดเรียงที่เป็นไปได้ทั้งหมดของรูปแบบที่กำหนดในข้อความ เช่นถ้าอินพุตคือ ANAGRAM และ NAAGARM พวกมันคือ anagram แต่ cat และ fat ไม่ใช่ anagram ในการแก

  6. หาตัวเลขที่หายไปใน Python

    สมมติว่าเรามีรายการตัวเลขจาก 0 ถึง n มีตัวเลขหนึ่งตัวที่หายไป เราต้องหาตัวเลขที่หายไปด้วยวิธีที่มีประสิทธิภาพ เช่นถ้า A = [0, 1, 2, 3, 4, 5, 7, 8, 9] ตัวเลขที่หายไปคือ 6 ในการแก้ปัญหานี้ เราจะใช้วิธีการค้นหาแบบทวิภาค (binary search) เรียงลำดับรายการในลำดับน้อยไปมาก high = ความยาวของ A, และ low =

  7. เลื่อนศูนย์ไปขวาใน Python

    สมมติว่าเรามีอาร์เรย์เก็บตัวเลขบางจำนวน มีค่าที่ไม่ใช่ศูนย์และค่าศูนย์ เราต้องส่งศูนย์ทั้งหมดไปทางขวาโดยไม่เปลี่ยนลำดับสัมพัทธ์ของตัวเลขอื่นๆ เช่นถ้าอาร์เรย์เป็น [0, 1, 5, 0, 3, 8, 0, 0, 9] อาร์เรย์สุดท้ายจะเป็น [1, 5, 3, 8, 9, 0, 0, 0, 0] วิธีการแก้ปัญหา สมมติ index = 0 สำหรับ i = 0 ถึงความยาวของ

  8. กำลังของสามใน Python

    สมมติว่าเรามีตัวเลข n เราต้องตรวจสอบว่าตัวเลขนั้นเป็นกำลังของ 3 หรือไม่ เช่นถ้าตัวเลขเป็น n = 27 นั่นคือกำลังของ 3 ผลลัพธ์จะเป็น true ถ้า n = 15 จะเป็น false วิธีการแก้ปัญหา เราจะใช้ลอการิทึมในการแก้ปัญหา ถ้า [log10(n) / log10(3)] mod 1 == 0 จะเป็นกำลังของสาม มิฉะนั้นไม่ใช่ ตัวอย่างโค้ด import m

  9. กลับสตริงใน Python

    สมมติว่าเรามีอาร์เรย์ของตัวอักษร เราต้องกลับสตริงโดยไม่ใช้พื้นที่เพิ่มเติม เช่นถ้าสตริงเป็น [H, E, L, L, O] ผลลัพธ์จะเป็น [O, L, L, E, H] วิธีการแก้ปัญหา ใช้ตัวชี้สองตัว start = 0 และ end = ความยาวของสตริง - 1 สลับตัวอักษรตัวแรกและตัวสุดท้าย เพิ่ม start ขึ้น 1 และลด end ลง 1 ตัวอย่างโค้ด class S

  10. ผลรวมของสองจำนวนเต็มใน Python

    สมมติว่าเรามีจำนวนเต็มสองจำนวน a และ b ภารกิจของเราคือหาผลรวมของสองจำนวนเต็มนี้ ข้อจำกัดหนึ่งคือ เราไม่สามารถใช้ตัวดำเนินการอย่าง + หรือ - ได้ เช่นถ้า a = 5 และ b = 7 ผลลัพธ์จะเป็น 12 วิธีการแก้ปัญหา ในการแก้ เราจะใช้ตัวดำเนินการบิตเวส (bitwise logical operators) ถ้า b = 0 ให้คืนค่า a มิฉะนั้น เรี

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

    สมมติว่าเรามีสตริง และเราต้องหาตัวอักษรที่ไม่ซ้ำตัวแรกในสตริง เช่นถ้าสตริงเป็น people ตัวอักษรแรกที่เกิดขึ้นครั้งเดียวคือ o ดังนั้นดัชนีที่คืนค่าจะเป็น 2 ถ้าไม่มีตัวอักษรแบบนั้น ให้คืนค่า -1 วิธีการแก้ปัญหา สร้างแผนที่ความถี่ (frequency map) หนึ่งอัน สำหรับแต่ละตัวอักษร c ในสตริง: ถ้า c ไม่อย

  12. Fizz Buzz ใน Python

    สมมติว่าเรามีตัวเลข n เราต้องแสดงการแทนค่าสตริงของตัวเลขทั้งหมดจาก 1 ถึง n แต่มีข้อจำกัดบางอย่าง: ถ้าตัวเลขหารด้วย 3 ลงตัว ให้เขียน Fizz แทนตัวเลข ถ้าตัวเลขหารด้วย 5 ลงตัว ให้เขียน Buzz แทนตัวเลข ถ้าตัวเลขหารด้วย 3 และ 5 ลงตัวทั้งคู่ ให้เขียน FizzBuzz แทนตัวเลข วิธีการแก้ปัญหา สำหรับทุกตัวเลขจา

  13. ระยะทางแฮมมิงใน Python

    พิจารณาว่าเรามีจำนวนเต็มสองจำนวน เราต้องหาระยะทางแฮมมิงของพวกมัน ระยะทางแฮมมิงคือจำนวนบิตที่ต่างกันระหว่างสองตัวเลข เช่นถ้าตัวเลขคือ 7 และ 15 ในทศนิยมสองคือ 0111 และ 1111 ที่นี่บิต MSB ต่างกัน ดังนั้นระยะทางแฮมมิงคือ 1 วิธีการแก้ปัญหา สำหรับ i = 31 ลงถึง 0: b1 = เลื่อนขวาของ x (i AND 1 ครั้ง)

  14. วงจรในลิงค์ลิสต์ใน Python

    พิจารณาว่าเรามีลิงค์ลิสต์ และเราต้องตรวจสอบว่ามีวงจร (cycle) หรือไม่ เพื่อแทนวงจรในลิงค์ลิสต์ที่กำหนด เราจะใช้ตัวชี้จำนวนเต็มหนึ่งตัวชื่อ pos pos แทนตำแหน่งในลิงค์ลิสต์ที่ท้ายเชื่อมต่อ ถ้า pos เป็น -1 แสดงว่าไม่มีวงจรในลิงค์ลิสต์ เช่น ลิงค์ลิสต์เป็น [5, 3, 2, 0, -4, 7] และ pos = 1 มีวงจร และท้ายเชื่

  15. Min Stack ใน Python

    ที่นี่เราจะดูวิธีสร้างสแต็กที่สามารถทำ push, pop, top และดึงค่าต่ำสุดได้ในเวลาคงที่ ฟังก์ชันจะเป็น push(x), pop(), top() และ getMin() วิธีการแก้ปัญหา เริ่มต้นสแต็กด้วยค่าต่ำสุดเป็น infinity สำหรับการ push(x): ถ้า x < min ให้อัปเดต min := x push x เข้าสแต็ก สำหรับการ pop(): t := องค

  16. จุดตัดของลิงค์ลิสต์สองตัวใน Python

    สมมติว่าเรามีลิงค์ลิสต์สองตัวคือ A และ B มีองค์ประกอบอยู่บ้าง เราต้องคืนค่าอ้างอิงของจุดตัด จุดตัดมีค่า intersectionVal = 8, A = [4,1,8,4,5], B = [5,0,1,8,4,5], skipA = 2 และ skipB = 3 ใช้เพื่อข้าม 2 องค์ประกอบจาก A และข้าม 3 องค์ประกอบจาก B วิธีการแก้ปัญหา กำหนดแมพชื่อ d while headA ไม่ใช่ null:

  17. การกลับบิตใน C++

    สมมติว่าเรามีจำนวนไม่มีเครื่องหมาย x และเราสามารถหาการแทนค่าทศนิยมสอง (32-bit unsigned integer) ได้ง่ายๆ ภารกิจของเราคือกลับบิต เช่นถ้าการแทนค่าทศนิยมสองเป็น 00000000000000000000001001110100 บิตที่กลับแล้วจะเป็น 00101110010000000000000000000000 เราต้องคืนค่าตัวเลขจริงหลังจากกลับบิต วิธีการแก้ปัญหา

  18. Happy Number ใน Python

    ที่นี่เราจะดูวิธีตรวจสอบว่าตัวเลข n เป็น Happy Number หรือไม่ Happy Number คือตัวเลขที่เริ่มจากจำนวนเต็มบวกใดๆ แล้วแทนที่ตัวเลขด้วยผลรวมของกำลังสองของหลักตัวเลข กระบวนการนี้จะทำซ้ำจนกลายเป็น 1 มิฉะนั้นจะวนรอบไม่สิ้นสุดในวงจร ตัวเลขที่เจอ 1 จะเป็น Happy Number สมมติตัวเลขคือ 19 ผลลัพธ์จะเป็น true เน

  19. รหัสบรรพบุรุษร่วมต่ำสุดของต้นไม้ค้นหาทวิภาคใน Python

    สมมติว่าเรามีต้นไม้ค้นหาทวิภาค เราต้องหาโหนดบรรพบุรุษร่วมต่ำสุดของโหนดสองโหนดที่กำหนด LCA ของโหนด p และ q คือโหนดที่ต่ำที่สุดในต้นไม้ที่มีทั้ง p และ q เป็นลูกหลาน ถ้าต้นไม้แบบทวิภาคเป็น [6, 2, 8, 0, 4, 7, 9, null, null, 3, 5] ต้นไม้จะเป็นดังนี้: LCA ของ 2 และ 8 คือ 6 วิธีการแก้ปัญหา ถ้าต้นไม้ว่

  20. เวอร์ชันแรกที่ผิดใน Python

    สมมติว่าในบริษัทหนึ่ง มีผู้จัดการผลิตภัณฑ์นำทีมที่พัฒนาผลิตภัณฑ์ใหม่ สมมติว่าเวอร์ชันล่าสุดล้มเหลวในการตรวจสอบคุณภาพ เนื่องจากแต่ละเวอร์ชันพัฒนาจากเวอร์ชันก่อนหน้า ทุกเวอร์ชันหลังจากเวอร์ชันที่ผิดจะเป็นเวอร์ชันที่ผิดเช่นกัน ดังนั้นเราจึงมีอาร์เรย์ A ที่มี n องค์ประกอบ [1, 2, ... n] และเราต้องหาเวอร์

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:120/451  20-คอมพิวเตอร์/Page Goto:1 114 115 116 117 118 119 120 121 122 123 124 125 126