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

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

  2. โปรแกรมนับจำนวนการดำเนินการน้อยสุดในการพลิกคอลัมน์เพื่อให้ได้เป้าหมายใน Python

    สมมติว่ามีเมทริกซ์ M และเมทริกซ์เป้าหมาย T ที่มีจำนวนแถวและคอลัมน์เท่ากัน การดำเนินการคือพลิกคอลัมน์หนึ่งในเมทริกซ์ ทำให้ 1 กลายเป็น 0 และ 0 กลายเป็น 1 หากเราสามารถเรียงลำดับแถวได้อย่างอิสระ หาจำนวนการดำเนินการน้อยสุดเพื่อทำให้ M กลายเป็น T หากไม่มีวิธีคืนค่า -1 เช่น ถ้าอินพุต M = [[0,0],[1,0],[1,1]

  3. โปรแกรมตรวจสอบว่าต้นไม้ไบนารีเป็นต้นไม้สมบูรณ์หรือไม่ใน Python

    สมมติว่ามีต้นไม้ไบนารี เราต้องตรวจสอบว่ามันเป็นต้นไม้ไบนารีสมบูรณ์ (complete binary tree) หรือไม่ ต้นไม้สมบูรณ์คือทุกระดับเต็มไปด้วยโหนด ยกเว้นระดับสุดท้าย และโหนดในระดับสุดท้ายชิดซ้ายสุด เช่น ถ้าอินพุตเป็นต้นไม้ดังภาพ ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา q := double-ended queue ใส่ root เข้า q fl

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

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

  5. โปรแกรมตรวจสอบว่าสตริงมีตัวเลขเรียงลำดับลดลงติดกันหรือไม่ใน Python

    สมมติว่ามีสตริง s ที่ประกอบด้วยตัวเลข เราต้องตรวจสอบว่ามันมีตัวเลขจำนวนเต็มที่เรียงลดลงติดกันหรือไม่ เช่น ถ้าอินพุตคือ s = 99989796 ผลลัพธ์จะเป็น True เนื่องจากสตริงนี้ประกอบด้วย [99,98,97,96] ขั้นตอนการแก้ปัญหา กำหนดฟังก์ชัน helper() รับ pos, prev_num ถ้า pos == n คืนค่า True num_digits := จำนวนหล

  6. โปรแกรมหาช่วงติดต่อของอาร์เรย์ที่ไม่ซ้ำใน Python

    สมมติว่ามีรายการตัวเลขที่ไม่ซ้ำชื่อ nums เราต้องหาเมทริกซ์ 2D ที่เรียงแล้ว โดยแต่ละรายการแทนช่วงรวมที่สรุปตัวเลขที่ติดต่อกันใน nums เช่น ถ้าอินพุตคือ nums = [10, 11, 12, 15, 16, 17, 28, 30] ผลลัพธ์จะเป็น [[10, 12], [15, 17], [28, 28], [30, 30]] ขั้นตอนการแก้ปัญหา เรียง nums เพิ่ม infinity เข้า nums

  7. โปรแกรมนับจำนวน BST ที่ไม่ซ้ำกันที่สร้างได้จากค่า 0 ถึง n ใน Python

    สมมติว่ามีตัวเลข n เราต้องหาจำนวน BST ที่ไม่ซ้ำกันที่สร้างได้จากตัวเลข [0, n) หากคำตอบใหญ่ มอดูลัส 10^9+7 เช่น ถ้าอินพุตคือ n = 3 ผลลัพธ์จะเป็น 5 ขั้นตอนการแก้ปัญหา numer := 1, denom := n + 1 for i ในช่วง 1 ถึง n numer := numer * (n + i) mod m denom := denom * i mod m numer := numer * (denom^(m-2)

  8. โปรแกรมตรวจสอบว่าวงเล็บเปิด-ปิดสมดุลหรือไม่ใน Python

    สมมติว่ามีสตริง s ประกอบด้วยวงเล็บ ( และ ) เราต้องตรวจสอบว่าวงเล็บสมดุลหรือไม่ เช่น ถ้าอินพุตคือ s = (()())(()) ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา num_open := 0 สำหรับแต่ละตัวอักษร c ใน s ถ้า c == ) ถ้า num_open < 0 num_open -= 1 มิฉะนั้น คืนค่า False มิฉะนั้น num_open += 1 คืนค่า not num_open

  9. โปรแกรมตรวจสอบว่าวงเล็บประเภทต่างๆ สมดุลและ well-formed หรือไม่ใน Python

    สมมติว่ามีสตริงของวงเล็บ (วงกลม, วงปีกกา, เหลี่ยม) เราต้องตรวจสอบว่าวงเล็บสมดุล (well-formed) หรือไม่ เช่น ถ้าอินพุตคือ s = ([()()]{[]})() ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา stack := รายการใหม่ d := hash map มีคู่ (}, {), (), (), (], [) สำหรับแต่ละตัวอักษร c ใน s ถ้า c เป็นหนึ่งใน }]) ถ้า stack

  10. โปรแกรมลบโหนดทั้งหมดจาก BST ที่ไม่อยู่ในช่วงที่กำหนดใน Python

    สมมติว่ามี BST และค่า low, high เราต้องลบโหนดทั้งหมดที่ไม่อยู่ในช่วง [low, high] (รวม) เช่น ถ้าอินพุตเป็นต้นไม้ดังภาพ low = 7, high = 10 ผลลัพธ์จะเป็นต้นไม้ที่เหลือโหนด 7,8,9,10 ขั้นตอนการแก้ปัญหา กำหนดฟังก์ชัน solve() รับ root, low, high ถ้า root เป็น null คืนค่า None root.data คืนค่า solve(right

  11. โปรแกรมตรวจสอบว่าต้นไม้ไบนารีเป็น BST หรือไม่ใน Python

    สมมติว่ามีต้นไม้ไบนารี เราต้องตรวจสอบว่ามันเป็นต้นไม้ค้นหาไบนารี (BST) หรือไม่ BST มีคุณสมบัติ โหนดทั้งหมดในซับทรีนซ้ายมีค่าน้อยกว่าโหนดปัจจุบัน โหนดทั้งหมดในซับทรีนขวามีค่ามากกว่าโหนดปัจจุบัน คุณสมบัตินี้เป็นจริงแบบเรียกซ้ำสำหรับทุกโหนด เช่น ถ้าอินพุตเป็นต้นไม้ดังภาพ ผลลัพธ์จะเป็น True ขั้นตอนการ

  12. โปรแกรมหาสตริงเล็กสุดตามลำดับเล็กซิโครกราฟิกด้วยการสลับครั้งเดียวใน Python

    สมมติว่ามีสตริง s เราต้องหาสตริงที่เล็กที่สุดตามลำดับเล็กซิโครกราฟิกที่สามารถสร้างได้หากเราสลับตัวอักษรสองตัวใน s ได้สูงสุดหนึ่งครั้ง เช่น ถ้าอินพุตคือ zyzx ผลลัพธ์จะเป็น xyzz ขั้นตอนการแก้ปัญหา temp := อาร์เรย์ขนาด s เติม 0 m := len(s) - 1 for i จาก len(s)-1 ถึง 0 ถ้า s[i] < s[m] m := i temp[i] :=

  13. โปรแกรมลบโหนดทั้งหมดในลิงก์ลิสต์ที่มีค่าเท่ากับเป้าหมายใน Python

    สมมติว่ามี singly linked list และค่าเป้าหมาย เราต้องคืน linked list เดียวกันหลังจากลบโหนดที่มีค่าเท่ากับเป้าหมายทั้งหมด เช่น ถ้าอินพุตคือ [5,8,2,6,5,2,9,6,2,4] ผลลัพธ์จะเป็น [5, 8, 6, 5, 9, 6, 4] ขั้นตอนการแก้ปัญหา head := node while node และ node.next ไม่ใช่ null while ค่าของ node.next == target n

  14. โปรแกรมแปลงลิงก์ลิสต์ที่แทนตัวเลขฐานสองเป็นจำนวนเต็มฐานสิบใน Python

    สมมติว่ามี singly linked list ที่แทนตัวเลขฐานสอง โดยหลักสำคัญอยู่หน้าสุด เราต้องคืนค่าเป็นจำนวนเต็มฐานสิบ เช่น ถ้าอินพุตคือ [1,0,1,1,0] ผลลัพธ์จะเป็น 22 ขั้นตอนการแก้ปัญหา l := รายการใหม่ while node ไม่ใช่ null ใส่ค่าของ node เข้า l, node := next of node k := 0, v := 0 for i จาก len(l)-1 ถึง 0 ถ้า

  15. โปรแกรมดำเนินการกับแต่ละองค์ประกอบของรายการและค่าที่กำหนดใน Python

    สมมติว่ามีรายการตัวเลข nums สตริง op แทนตัวดำเนินการ +, -, /, * และค่า val เราต้องดำเนินการกับทุกตัวเลขใน nums กับ val และคืนผลลัพธ์ เช่น ถ้าอินพุตคือ [5,3,8] op=*, val=3 ผลลัพธ์จะเป็น [15, 9, 24] ขั้นตอนการแก้ปัญหา res := รายการใหม่ สำหรับแต่ละ i ใน nums ถ้า op == + ใส่ i+val เข้า res ถ้า op == -

  16. โปรแกรมทำให้ทุกองค์ประกอบเท่ากันด้วยการดำเนินการที่กำหนดใน Python

    สมมติว่ามีรายการตัวเลข nums เราต้องการทำให้ค่าทั้งหมดเท่ากัน การดำเนินการคือเลือกหนึ่งองค์ประกอบแล้วเพิ่มค่าอื่นๆ ทั้งหมดทีละ 1 หาจำนวนการดำเนินการน้อยสุดที่จำเป็น เช่น ถ้าอินพุตคือ [2, 4, 5] ผลลัพธ์จะเป็น 5 ขั้นตอนการแก้ปัญหา min_val := ค่าต่ำสุดของ nums s := 0 สำหรับแต่ละ num ใน nums s := s + (nu

  17. โปรแกรมแทนที่แต่ละองค์ประกอบด้วยค่าน้อยที่สุดทางด้านซ้ายใน Python

    สมมติว่ามีรายการตัวเลขชื่อ nums เราต้องแทนที่ทุก nums[i] ด้วยค่าน้อยที่สุดทางด้านซ้ายของ i nums[0] แทนที่ด้วย 0 เช่น ถ้าอินพุตคือ [15, 7, 9, 16, 12, 25] ผลลัพธ์จะเป็น [0, 15, 7, 7, 7, 7] ขั้นตอนการแก้ปัญหา ถ้า nums ว่าง คืนค่ารายการใหม่ j := nums[0], nums[0] := 0 for i ในช่วง 1 ถึง len(nums)-1 k :=

  18. โปรแกรมหาคำนำหน้าที่ยาวที่สุดที่พบร่วมกันจากรายการสตริงใน Python

    สมมติว่ามีรายการสตริงตัวพิมพ์เล็ก เราต้องหาคำนำหน้าที่ยาวที่สุดที่พบร่วมกัน เช่น ถ้าอินพุตคือ [antivirus, anticlockwise, antigravity] ผลลัพธ์จะเป็น anti ขั้นตอนการแก้ปัญหา เรียงรายการ words ตามตัวอักษร prefix := รายการใหม่, flag := 0 for i ในช่วง 0 ถึง len(words[0]) prefix.append(words[0][i]) for j

  19. โปรแกรมหาความยาวสับสตริงที่มีตัวอักษรติดกันเหมือนกันใน Python

    สมมติว่ามีสตริง s เราต้องหาความยาวของสับสตริงที่ยาวที่สุดที่มีตัวอักษรเหมือนกันติดกัน เช่น ถ้าอินพุตคือ abbbaccabbbba ผลลัพธ์จะเป็น 4 เนื่องจากมี b ติดกัน 4 ตัว ขั้นตอนการแก้ปัญหา ถ้าขนาดของ s เป็น 0 คืนค่า 0 s := s + ช่องว่าง ct := 1, tem := 1 for i ในช่วง 0 ถึง len(s)-2 ถ้า s[i] == s[i+1] tem :=

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

    สมมติว่ามีสตริง s และ t ความยาว n เราสามารถหยิบตัวอักษรหนึ่งจาก s และหนึ่งจาก t มาสลับกันได้ จำนวนครั้งไม่จำกัด ต้องตรวจสอบว่าสามารถทำให้สตริงทั้งสองเท่ากันได้หรือไม่ เช่น ถ้าอินพุตคือ s = xy, t = yx ผลลัพธ์จะเป็น True ขั้นตอนการแก้ปัญหา st := เรียงสตริงที่ต่อ s และ t for i ในช่วง 0 ถึง len(st)-1 เ

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:173/451  20-คอมพิวเตอร์/Page Goto:1 167 168 169 170 171 172 173 174 175 176 177 178 179