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

    สมมติว่าเรามีลิสต์ที่เรียงแล้วสองอันคือ A และ B เราต้องรวมพวกมันและสร้างลิสต์ที่เรียงแล้วเพียงอันเดียวคือ C ขนาดของลิสต์อาจแตกต่างกัน ตัวอย่างเช่น สมมติ A = [1,2,4,7] และ B = [1,3,4,5,6,8] ลิสต์ที่รวมแล้ว C จะเป็น [1,1,2,3,4,4,5,6,7,8] เราจะแก้ปัญหานี้ด้วยการเรียกซ้ำ (recursion) ฟังก์ชันจะทำงานดัง

  2. ลบค่าซ้ำจากอาร์เรย์ที่เรียงแล้วใน Python

    สมมติว่าเรามีรายการที่เรียงแล้ว A เราต้องคืนค่าความยาวของอาร์เรย์หลังจากลบรายการซ้ำทั้งหมด เราต้องทำในพื้นที่เพิ่ม O(1) นั่นคือต้องดำเนินการในที่เดิม (in-place) ตัวอย่างเช่น สมมติ A = [1, 1, 2, 2, 2, 3, 3, 3, 3, 4, 5, 5, 5, 6] ผลลัพธ์จะเป็น 6 เนื่องจากมีองค์ประกอบที่แตกต่างกัน 6 ตัว วิธีการแก้ปัญห

  3. Implement strStr() ใน Python

    สมมติว่าเรามีสตริงสองตัวคือ str และ sub_str เราต้องหาการเกิดครั้งแรกของ sub_str ใน str เช่นถ้าสตริง str คือ helloworld และ substring คือ lo ผลลัพธ์จะเป็น 3 สิ่งนี้สามารถทำได้ด้วยฟังก์ชัน strstr() ใน C เราต้องออกแบบฟังก์ชันอีกตัวที่คล้ายกับ strstr() ใน C วิธีการแก้ปัญหา i := 0, j := 0, m := ความยา

  4. Count and Say ใน Python

    ที่นี่เราจะดูลำดับ Count and Say นี่คือลำดับที่พจน์บางส่วนเป็นดังนี้: 1 11 21 1211 111221 สตริงจะถูกอ่านดังนี้: 1 (หนึ่ง) 11 (หนึ่ง 1) ดังนั้นอ่าน 1 ก่อนหน้า และพูดว่า หนึ่ง 1 21 (สอง 1) ดังนั้นอ่าน 11 ก่อนหน้า และพูดว่า สอง 1 1211 (หนึ่ง 2 หนึ่ง 1) ดังนั้นอ่าน 21 ก่อนหน้า และพูดว่า หนึ่ง 2 หนึ

  5. อาร์เรย์ย่อยสูงสุดใน Python

    สมมติว่าเรามีอาร์เรย์จำนวนเต็ม A เราต้องหาอาร์เรย์ย่อยที่ต่อเนื่องซึ่งความยาวอย่างน้อยหนึ่ง และมีผลรวมมากที่สุด และคืนค่าผลรวมนั้นด้วย เช่นถ้าอาร์เรย์ A เป็น A = [-2,1,-3,4,-1,2,1,-5,4] ผลรวมจะเป็น 6 และอาร์เรย์ย่อยจะเป็น [4, -1, 2, 1] ในการแก้ปัญหานี้ เราจะลองใช้แนวทาง Dynamic Programming กำหนดอ

  6. บวกหนึ่งใน Python

    สมมติว่าเรามีอาร์เรย์ของจำนวนเต็ม คือ A A จะมี n องค์ประกอบ และเป็นจำนวนไม่ติดลบ อาร์เรย์ทั้งหมด A แทนตัวเลขใหญ่หนึ่งตัว เช่นถ้า A = [5, 3, 2, 4] แสดงตัวเลข 5324 เราต้องรับอาร์เรย์ A แล้วเพิ่มตัวเลขขึ้น 1 และคืนค่าตัวเลขเป็นอาร์เรย์เหมือนเดิม ดังนั้นหลังเพิ่ม A จะเป็น [5, 3, 2, 5] วิธีการแก้ปัญหา

  7. Sqrt(x) ใน Python

    สมมติว่าเรามีตัวเลข x และ x เป็นจำนวนไม่ติดลบ เราต้องหารากที่สองของ x โดยไม่ใช้ฟังก์ชันไลบรารีใดๆ เราต้องสร้างฟังก์ชันของตัวเองเพื่อประเมิน sqrt(x) ในฟังก์ชันนี้ ตัวเลขทศนิยมของผลลัพธ์จะถูกตัดทิ้ง สมมติค่าของ x เป็น 4 ผลลัพธ์จะเป็น 2 ถ้า x เป็น 8 ผลลัพธ์ก็จะเป็น 2 เพราะ sqrt(8) คือ 2.82842 แต่เราจะ

  8. รวมอาร์เรย์ที่เรียงแล้วใน Python

    สมมติว่าเรามีอาร์เรย์ที่เรียงแล้วสองอันคือ A และ B เราต้องรวมพวกมันและสร้างอาร์เรย์ที่เรียงแล้วเพียงอันเดียวคือ C ขนาดของลิสต์อาจแตกต่างกัน ตัวอย่างเช่น สมมติ A = [1,2,4,7] และ B = [1,3,4,5,6,8] ลิสต์ที่รวมแล้ว C จะเป็น [1,1,2,3,4,4,5,6,7,8] วิธีการแก้ปัญหา กำหนด i := 0, j := 0 และ end := ความยาว

  9. ต้นไม้สมมาตรใน Python

    สมมติว่าเรามีต้นไม้แบบทวิภาคหนึ่งต้น เราต้องตรวจสอบว่าต้นไม้นั้นเป็นต้นไม้สมมาตรหรือไม่ ต้นไม้จะถูกว่าสมมาตรถ้ามันเหมือนเดิมเมื่อเราหาภาพกระจกของมัน จากต้นไม้สองต้น ต้นแรกเป็นสมมาตร แต่ต้นที่สองไม่ใช่ วิธีการแก้ปัญหา เราจะเรียกขั้นตอนต่อไปนี้แบบเรียกซ้ำ ฟังก์ชันจะเป็น solve(root, root) ถ้า node1

  10. ความลึกสูงสุดของต้นไม้แบบทวิภาคใน Python

    สมมติว่าเรามีต้นไม้แบบทวิภาคหนึ่งต้น เราต้องหาความลึกสูงสุดของต้นไม้นั้น ความลึกสูงสุดของต้นไม้คือจำนวนโหนดสูงสุดที่เดินทางผ่านเพื่อไปถึงใบจากรากโดยใช้เส้นทางที่ยาวที่สุด สมมติต้นไม้เป็นแบบด้านล่าง ความลึกจะเป็น 3 วิธีการแก้ปัญหา เราจะใช้แนวทางแบบเรียกซ้ำ (recursive) เมธอดคือ solve(root, depth =

  11. แปลงอาร์เรย์ที่เรียงแล้วเป็นต้นไม้ค้นหาทวิภาคใน Python

    สมมติว่าเรามีอาร์เรย์ที่เรียงแล้ว A เราต้องสร้างต้นไม้ค้นหาทวิภาคที่สมดุลสูง (height-balanced) ในปัญหานี้ ต้นไม้แบบทวิภาคที่สมดุลสูงคือต้นไม้แบบทวิภาคที่ความลึกของต้นไม้ย่อยสองต้นของทุกโหนดไม่ต่างกันมากกว่า 1 สมมติอาร์เรย์เป็น [-10, -3, 0, 5, 9] ผลลัพธ์ที่เป็นไปได้หนึ่งคือ [0, -3, 9, -10, null, 5]

  12. Path Sum ใน Python

    สมมติว่าเรามีต้นไม้หนึ่งต้นและผลรวมหนึ่งค่า เราต้องหาเส้นทางหนึ่งเส้นทางที่ถ้าเราตามเส้นทางนั้น เราจะได้ผลรวมที่ตรงกับผลรวมที่กำหนด สมมติต้นไม้เป็น [0,-3,9,-10, null,5] และผลรวมคือ 14 แล้วมีเส้นทาง 0 → 9 → 5 วิธีการแก้ปัญหา ถ้ารากเป็น null ให้คืนค่า False ถ้าต้นไม้ย่อยซ้ายและขวาว่าง ให้คืนค่า tr

  13. เวลาที่ดีที่สุดในการซื้อขายหุ้นใน Python

    สมมติว่าเรามีอาร์เรย์ A ที่ A[i] แสดงราคาหุ้นในวันที่ i เราต้องหากำไรสูงสุด เราสามารถทำธุรกรรมได้สูงสุดหนึ่งครั้ง (ธุรกรรมหมายถึงซื้อและขายหุ้น) แต่ต้องจำว่าไม่สามารถทำธุรกรรมหลายอย่างพร้อมกันได้ ต้องขายหุ้นก่อนจึงจะซื้อใหม่ได้ สมมติอาร์เรย์เป็น A = [7, 1, 5, 3, 6, 4] ผลลัพธ์จะเป็น 5 เราสามารถเห็นไ

  14. เวลาที่ดีที่สุดในการซื้อขายหุ้น II ใน Python

    สมมติว่าเรามีอาร์เรย์ A ที่ A[i] แสดงราคาหุ้นในวันที่ i เราต้องหากำไรสูงสุด เราสามารถทำธุรกรรมได้มากเท่าที่ต้องการ (ธุรกรรมหมายถึงซื้อและขายหุ้น) แต่ต้องจำว่าไม่สามารถทำธุรกรรมหลายอย่างพร้อมกันได้ ต้องขายหุ้นก่อนจึงจะซื้อใหม่ได้ สมมติอาร์เรย์เป็น A = [7, 1, 5, 3, 6, 4] ผลลัพธ์จะเป็น 7 เราสามารถเห็น

  15. Palindrome ที่ถูกต้องใน Python

    สมมติว่าเรามีสตริงที่มีค่าอักษรตัวเลขและสัญลักษณ์ มีตัวพิมพ์เล็กและพิมพ์ใหญ่ เราต้องตรวจสอบว่าสตริงเป็น palindrome หรือไม่ โดยพิจารณาเฉพาะตัวพิมพ์เล็ก (ตัวพิมพ์ใหญ่จะแปลงเป็นพิมพ์เล็ก) สัญลักษณ์อื่นๆ เช่น คอมมา ช่องว่างจะถูกเพิกเฉย สมมติสตริงเป็น A Man, a Plan, a Canal: Panama ตามกฎเหล่านี้จะกลายเป

  16. ตัวเลขเดี่ยวใน Python

    สมมติว่าเรามีอาร์เรย์ A ในอาร์เรย์นี้มีตัวเลขหลายตัวที่เกิดขึ้นสองครั้ง มีเพียงองค์ประกอบเดียวที่พบได้เพียงครั้งเดียว เราต้องหาองค์ประกอบนั้นจากอาร์เรย์นั้น สมมติ A = [1, 1, 5, 3, 2, 5, 2] ผลลัพธ์จะเป็น 3 เนื่องจากมีตัวเลขแต่ละตัวสองครั้ง เราสามารถทำ XOR เพื่อตัดทอนองค์ประกอบนั้นออกได้ เพราะเรารู้ว่

  17. หมุนอาร์เรย์ใน Python

    สมมติว่าเรามีอาร์เรย์ A เราต้องหมุนขวา k ขั้นตอน เช่นถ้าอาร์เรย์คือ A = [5, 7, 3, 6, 8, 1, 5, 4] และ k = 3 ผลลัพธ์จะเป็น [1,5,4,5,7,3,6,8] ขั้นตอนคือ: [4,5,7,3,6,8,1,5] [5,4,5,7,3,6,8,1] [1,5,4,5,7,3,6,8] วิธีการแก้ปัญหา ให้ n เป็นขนาดของอาร์เรย์ k = k mod n A = สับอาร์เรย์ของ A จาก n - k ถึงสุ

  18. จำนวนบิต 1 ใน Python

    สมมติว่าเรามีจำนวนไม่มีเครื่องหมาย n เราต้องหาจำนวน 1 ในการแทนค่าทศนิยมสองของตัวเลขนี้ นี่ cònเรียกว่า Hamming Weight เช่นถ้าตัวเลขเป็น 000000101101 ผลลัพธ์จะเป็น 4 วิธีการแก้ปัญหา รับตัวเลขและแปลงเป็นสตริงทศนิยมสอง ตั้งค่า count = 0 สำหรับแต่ละตัวอักษร e ในสตริงทศนิยมสอง: ถ้าตัวอักษรเป็น 1 ใ

  19. โจรขโมยบ้านใน Python

    สมมติว่ามีเมืองหนึ่ง และแต่ละหลังคาบ้านในเมืองมีเงินจำนวนหนึ่ง โจรหนึ่งคนต้องการขโมยเงินในคืนเดียว เมืองมีระบบความปลอดภัย คือ ถ้าบ้านติดกันสองหลังถูกขโมยในคืนเดียวกัน จะโทรแจ้งตำรวจอัตโนมัติ เราต้องหาว่าโจรสามารถขโมยได้สูงสุดเท่าไหร่ มีอาร์เรย์หนึ่ง ที่ดัชนี i, A[i] คือจำนวนเงินในบ้านที่ i สมมติอาร

  20. นับจำนวนเฉพาะใน Python

    สมมติว่าเรามีขีดจำกัด n เราต้องนับจำนวนเฉพาะในช่วง 2 ถึง n เช่นถ้า n = 10 ผลลัพธ์จะเป็น 4 เนื่องจากมีจำนวนเฉพาะ 4 ตัวก่อน 10 คือ 2, 3, 5, 7 วิธีการแก้ปัญหา count = 0 สร้างอาร์เรย์ prime ขนาด n + 1 และเติมด้วย False สำหรับ i = 0 ถึง n: ถ้า prime[i] = false: เพิ่ม count ขึ้น 1 ตั้ง

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