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

    คำอธิบายปัญหา กำหนดลิสต์ช่วง intervals แต่ละช่วง [start, end] หาจำนวนช่วงที่ **อยู่ภายในอีกช่วงหนึ่งอย่างสมบูรณ์** (นับครั้งเดียวแม้อยู่ในหลายช่วง) [s0,e0] ใน [s1,e1] ถ้า s0 ≥ s1 และ e0 ≤ e1 ตัวอย่าง intervals = [[2,6],[3,4],[4,7],[5,5]] → Output: 2 [3,4] ใน [2,6] [5,5] ใน [4,7] ขั้นตอนการแก้ปั

  2. โปรแกรมนับจำนวน square submatrices ที่เป็น 1 ทั้งหมดในเมทริกซ์ไบนารีด้วย Python

    คำอธิบายปัญหา กำหนดเมทริกซ์ไบนารี 2D หาจำนวน **square submatrices** ทั้งหมดที่ element ทุกตัวเป็น 1 ตัวอย่าง Matrix: 0 1 1 0 1 1 Output: 5 (1 ชุด 2x2 + 4 ชุด 1x1) ขั้นตอนการแก้ปัญหา (DP) dp[i][j] = ขนาด square ใหญ่สุดที่มุมล่างขวาอยู่ (i,j) และเป็น 1 ทั้งหมด ถ้า mat[i][j] == 1: ขอบบน/ซ้าย: dp

  3. โปรแกรมนับ substring ที่เป็น 1 ทั้งหมดในสตริงไบนารีด้วย Python

    คำอธิบายปัญหา กำหนดสตริงไบนารี s หาจำนวน substring ที่ประกอบด้วย **1 เท่านั้น** Modulo 10^9+7 ตัวอย่าง s = 100111 → Output: 7 Substrings: 1 (4 ครั้ง), 11 (2 ครั้ง), 111 (1 ครั้ง) = 7 ขั้นตอนการแก้ปัญหา (O(n)) วนลูปตัวอักษร: ตัวนับ a = ความยาว streak ของ 1 ติดต่อกัน เจอ 0 → a = 0 เจอ 1 → a += 1,

  4. โปรแกรมลดลิสต์ด้วยการดำเนินการที่กำหนดหาเลขที่เหลือน้อยที่สุดใน Python

    คำอธิบายปัญหา กำหนดลิสต์ nums (จำนวนบวก) ดำเนินการ: เลือก a ≤ b ลบทั้งคู่ ถ้า a < b ใส่ b-a กลับ เข้าไป ทำซ้ำได้ไม่จำกัด หา **เลขที่เหลือน้อยที่สุด** (ลิสต์ว่าง = 0) ตัวอย่าง nums = [2, 4, 5] → Output: 1 เลือก 4,5 → ใส่ 1 → [2,1] | เลือก 2,1 → ใส่ 1 → [1] ขั้นตอนการแก้ปัญหา (Subset Sum / Partitio

  5. โปรแกรมหาความยาวสูงสุดของสายริบบิ้น k เส้นความยาวเท่ากันใน Python

    คำอธิบายปัญหา กำหนดลิสต์ความยาวสายริบบิ้น ribbons และ k ตัดสายได้อย่างอิสระ หา **ความยาว r สูงสุด** ที่ได้สาย k เส้นยาว r พอดี ไม่ได้คืน -1 ตัวอย่าง ribbons = [1, 2, 5, 7, 15], k = 5 → Output: 5 15 → 3 เส้นยาว 5 7 → 1 เส้นยาว 5 (เหลือ 2) 5 → 1 เส้นยาว 5 รวม 5 เส้น ✓ ขั้นตอนการแก้ปัญหา (Binary S

  6. โปรแกรมหากำไรสูงสุดตัดไม้ขายความยาวเท่ากันใน Python

    คำอธิบายปัญหา กำหนดลิสต์ความยาวไม้ rodLen, profit (กำไรต่อหน่วยยาว), cost (ค่าตัดต่อครั้ง) ตัดไม้เป็นชิ้นความยาวเท่ากัน (จำนวนเต็ม) ขายเฉพาะชิ้นที่ความยาวเท่ากันทุกชิ้น หากำไรสูงสุด ตัวอย่าง rodLen = [7, 10], profit = 6, cost = 4 → Output: 82 ตัด 7 → 5+2 (1 ครั้ง), ตัด 10 → 5+5 (1 ครั้ง) ได้ไม้ยา

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

    คำอธิบายปัญหา กำหนดสตริง s, t อนุญาตลบตัวอักษรจากสตริงใดก็ได้ หาจำนวนการลบน้อยที่สุดทำให้ s == t ตัวอย่าง s = pipe, t = ripe → Output: 2 ลบ p จาก s, ลบ r จาก t → ทั้งคู่กลายเป็น ipe ขั้นตอนการแก้ปัญหา (DP - LCS Variant) DP(i,j) = การลบน้อยสุดจาก s[i:], t[j:] ถ้า s[i] == t[j]: DP(i+1, j+1) มิฉะนั

  8. โปรแกรมหาความยาว sublist สั้นที่สุดที่ลบได้เพื่อให้ผลรวมหาร k ลงตัวใน Python

    คำอธิบายปัญหา กำหนดลิสต์ nums (ค่าบวก) และ k หา **ความยาว sublist สั้นที่สุด** (อาจว่าง) ที่ลบออกแล้วผลรวมที่เหลือหาร k ลงตัว **ห้ามลบลิสต์ทั้งหมด** ไม่มีคืน -1 ตัวอย่าง nums = [5,8,6,3], k = 8 → Output: 1 Sum=22, ลบ [6] (len=1) → เหลือ 16 หาร 8 ลงตัว ขั้นตอนการแก้ปัญหา (Prefix Sum + Hash Map) r

  9. โปรแกรมนับจำนวน substring ที่แตกต่างกันในสตริงด้วย Python

    คำอธิบายปัญหา กำหนดสตริง s หาจำนวน **substring ที่ไม่ซ้ำกัน** (distinct non-empty substrings) ตัวอย่าง s = abaa → Output: 8 Substrings: a, b, ab, ba, aa, aba, baa, abaa ขั้นตอนการแก้ปัญหา (Trie) สร้าง Trie: ใส่ทุก suffix s[i:] ลง Trie นับโหนดทั้งหมดใน Trie (ยกเว้น root) = จำนวน distinct substrin

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

    คำอธิบายปัญหา กำหนดสตริง s อนุญาต: ลบ, แทรก, แก้ไข ตัวอักษร หาจำนวนการดำเนินการน้อยที่สุด เพื่อให้ s = t + t สำหรับสตริง t ใดๆ ตัวอย่าง s = pqrxqsr → Output: 2 แก้ x→p, ลบ s ได้ pqrpqr = pqr + pqr ขั้นตอนการแก้ปัญหา (Edit Distance) ลองทุกจุดตัด i แบ่ง s เป็น s[:i] และ s[i:] คำนวณ edit_distance(s

  11. Python Pandas - ดึงนาทีจาก DateTimeIndex ด้วย minute property

    คำอธิบาย ใช้ property DateTimeIndex.minute ดึงค่านาที (0-59) ของแต่ละ timestamp ตัวอย่างโค้ด import pandas as pd datetimeindex = pd.date_range(2021-10-20 02:30:55, periods=6, tz=Australia/Sydney, freq=T) print(DateTimeIndex...\n, datetimeindex) print(DateTimeIndex frequency...\n, datetimeindex.f

  12. Python Pandas - ดึงวินาทีจาก DateTimeIndex ด้วย second property

    คำอธิบาย ใช้ property DateTimeIndex.second ดึงค่าวินาที (0-59) ของแต่ละ timestamp ตัวอย่างโค้ด import pandas as pd datetimeindex = pd.date_range(2021-10-20 02:30:50, periods=6, tz=Australia/Sydney, freq=S) print(DateTimeIndex...\n, datetimeindex) print(DateTimeIndex frequency...\n, datetimeindex

  13. Python Pandas - ดึงไมโครวินาทีจาก DateTimeIndex ด้วย microsecond property

    คำอธิบาย ใช้ property DateTimeIndex.microsecond ดึงค่าไมโครวินาที (0-999,999) ของแต่ละ timestamp ตัวอย่างโค้ด import pandas as pd datetimeindex = pd.date_range(2021-10-20 02:30:50, periods=6, tz=Australia/Sydney, freq=us) print(DateTimeIndex...\n, datetimeindex) print(DateTimeIndex frequency...\

  14. Python Pandas - ดึงวันที่เป็น datetime.date จาก DateTimeIndex ด้วย date property

    คำอธิบาย ใช้ property DateTimeIndex.date ดึง numpy array ของ datetime.date objects (เฉพาะวันที่ ไม่มีเวลา, ไม่มี timezone) ตัวอย่างโค้ด import pandas as pd datetimeindex = pd.date_range(2021-10-20 02:30:50, periods=3, tz=Australia/Sydney, freq=ns) print(DateTimeIndex...\n, datetimeindex) print(\

  15. โปรแกรมนับวิธีตกลูกบอลไปชั้นล่างหลีกเลี่ยงขั้นแบนใน Python

    คำอธิบายปัญหา กำหนดความสูง h และ blacklist (ชั้นที่ตายทันที) เริ่มที่ชั้น h ต้องไปถึงชั้น 0 รอบคู่ (0,2,4...): เดินได้ 1,2,4 ขั้น รอบคี่: เดินได้ 1,3,4 ขั้น หาจำนวนวิธี modulo 10^9+7 ตัวอย่าง h = 5, blacklist = [2, 1] → Output: 2 รอบ 0: 5→4 (1 ขั้น), รอบ 1: 4→0 (4 ขั้น) รอบ 0: 5→3 (2 ขั้น), รอบ 1

  16. Python Pandas - ดึงนาโนวินาทีจาก DateTimeIndex ด้วย nanosecond property

    คำอธิบาย ใช้ property DateTimeIndex.nanosecond ดึงค่านาโนวินาที (0-999,999,999) ของแต่ละ timestamp ตัวอย่างโค้ด import pandas as pd datetimeindex = pd.date_range(2021-10-20 02:30:50, periods=6, tz=Australia/Sydney, freq=ns) print(DateTimeIndex...\n, datetimeindex) print(DateTimeIndex frequency..

  17. โปรแกรมหาค่าเซ็นเซอร์ที่ตกหล่นจากลิสต์ผิดปกติใน Python

    คำอธิบายปัญหา มีลิสต์ nums1, nums2 หนึ่งลิสต์ถูกต้อง อีกอันผิด: **ลบค่าหนึ่งค่า (ไม่ใช่ค่าสุดท้าย) แล้วเพิ่มค่าผิดท้ายลิสต์** หาค่าที่ถูกลบ (ค่าจริง) ตัวอย่าง nums1 = [5, 10, 15], nums2 = [10, 15, 8] → Output: 5 nums1 ถูกต้อง, nums2 ลบ 5 ทิ้ง ใส่ 8 ท้าย ขั้นตอนการแก้ปัญหา (Binary Search) ลิสต์ทั

  18. Python Pandas - ดึงวันที่ในปี (ordinal day) จาก DateTimeIndex ด้วย dayofyear

    คำอธิบาย ใช้ property DateTimeIndex.dayofyear ดึงลำดับวันในปี (1-365/366) ของแต่ละ timestamp ตัวอย่างโค้ด import pandas as pd datetimeindex = pd.date_range(2021-10-20 02:30:50, periods=6, tz=Australia/Sydney, freq=D) print(DateTimeIndex...\n, datetimeindex) print(DateTimeIndex frequency...\n, da

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