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

    สมมติว่ามีสตริง s เราต้องหาจำนวนพาลินโดรมที่แตกต่างกันที่สามารถสร้างได้โดยใช้ตัวอักษรทั้งหมด หากคำตอบใหญ่มาก ให้มอดูลัสด้วย 10^9 + 7 เช่น ถ้าอินพุตคือ s = xyzzy ผลลัพธ์จะเป็น 2 เนื่องจากสามารถสร้าง zyxyz และ yzxzy ได้ ขั้นตอนการแก้ปัญหา m = 10^9+7 char_freq := map เก็บตัวอักษรแต่ละตัวใน s และความถี

  2. โปรแกรมค้นหาต้นไม้โดยอัปเดตค่าด้วยผลรวมของซับทรีนซ้ายและขวาใน Python

    สมมติว่ามีต้นไม้ไบนารี เราต้องหาต้นไม้เดียวกันแต่ค่าของแต่ละโหนดถูกแทนที่ด้วยค่าของมันบวกกับผลรวมของซับทรีนซ้ายและขวาทั้งหมด เช่น ถ้าอินพุตเป็นต้นไม้ดังภาพ ผลลัพธ์จะเป็นต้นไม้ที่ค่าโหนดเปลี่ยนไปตามกฎ ขั้นตอนการแก้ปัญหา กำหนดฟังก์ชัน tree_sum() รับรากของต้นไม้ ถ้า root เป็น null คืนค่า 0 ข้อมูลของ r

  3. โปรแกรมหาต้นทุนรวมต่ำสุดเพื่อทำให้องค์ประกอบในรายการเท่ากันใน Python

    สมมติว่ามีรายการตัวเลขสองรายการชื่อ nums และ costs พิจารณาการดำเนินการที่เราสามารถเพิ่มหรือลด nums[i] ด้วยต้นทุน costs[i] เราสามารถดำเนินการได้ไม่จำกัดครั้ง และต้องการให้ทุกองค์ประกอบใน nums เท่ากัน เราต้องหาต้นทุนรวมต่ำสุดที่จำเป็น เช่น ถ้าอินพุตคือ nums = [3, 2, 4] costs = [1, 10, 2] ผลลัพธ์จะเป็น

  4. โปรแกรมหาตัวประกอบเฉพาะทั้งหมดของตัวเลขที่กำหนดเรียงลำดับใน Python

    สมมติว่ามีตัวเลข n มากกว่า 1 เราต้องหาตัวประกอบเฉพาะทั้งหมดของมันและคืนค่าเรียงลำดับ ตัวเลขสามารถเขียนเป็นผลคูณของจำนวนเฉพาะได้ ตัวประกอบเฉพาะอาจปรากฏมากกว่าหนึ่งครั้ง เช่น ถ้าอินพุตคือ 42 ผลลัพธ์จะเป็น [2, 3, 7] ขั้นตอนการแก้ปัญหา res := รายการใหม่ while n mod 2 เท่ากับ 0 ทำ เพิ่ม 2 เข้าไปใน res n

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

    สมมติว่ามีรายการตัวเลขชื่อ nums เราต้องตรวจสอบว่ามีตัวเลขสามตัว a, b, c ที่ทำให้ a^2 + b^2 = c^2 หรือไม่ เช่น ถ้าอินพุตคือ [10, 2, 8, 5, 6] ผลลัพธ์จะเป็น True เพราะ 8^2 + 6^2 = 64+36 = 100 = 10^2 ขั้นตอนการแก้ปัญหา tmp := รายการยกกำลังสองของทุกตัวเลขใน nums เรียงลำดับจากมากไปน้อย สำหรับแต่ละดัชนี i

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

    สมมติว่ามีสี่เหลี่ยมแทนด้วยรายการสี่ค่า [x1, y1, x2, y2] โดย (x1, y1) คือมุมซ้ายล่าง และ (x2, y2) คือมุมขวาบน สองสี่เหลี่ยมทับซ้อนกันเมื่อพื้นที่ส่วนที่ทับซ้อนเป็นบวก สี่เหลี่ยมที่สัมผัสกันเพียงขอบหรือมุมไม่ถือว่าทับซ้อน เช่น ถ้าอินพุตคือ R1 = [0,0,2,2], R2 = [1,1,3,3] ผลลัพธ์จะเป็น True ขั้นตอนการแ

  7. โปรแกรมหาดัชนีของตัวอักษรที่ซ้ำแรกในสตริงที่กำหนดใน Python

    สมมติว่ามีสตริง s เราต้องหาดัชนีของตัวอักษรที่ซ้ำแรกในสตริงนั้น หากไม่พบตัวอักษรที่ซ้ำ ให้คืนค่า -1 เช่น ถ้าอินพุตคือ abcade ผลลัพธ์จะเป็น 3 เนื่องจาก a ปรากฏอีกครั้งที่ดัชนี 3 ขั้นตอนการแก้ปัญหา กำหนด map chars สำหรับ i ในช่วง 0 ถึงขนาดของ s ทำ ถ้า s[i] อยู่ใน chars แล้ว คืนค่า i มิฉะนั้น chars[s[

  8. โปรแกรมนับจำนวนองค์ประกอบในชุดที่มีการเข้าถึงดัชนีแบบเรียกซ้ำใน Python

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

  9. โปรแกรมหาค่าซ้ำและลบครั้งสุดท้ายของค่าซ้ำนั้นใน Python

    สมมติว่าเรามีรายการตัวเลข A ต้องหาค่าซ้ำทั้งหมดและลบ occurrence สุดท้ายของแต่ละค่าซ้ำ ตัวอย่าง: [10, 30, 40, 10, 30, 50] → [10, 30, 40, 50] (ลบ 10 ตัวที่ 2 และ 30 ตัวที่ 2) ขั้นตอนการแก้ปัญหา (Two-pass với Frequency Count) นับความถี่ทั้งหมดใน d วนลูปผ่านรายการพร้อมนับ seen: หาก see

  10. โปรแกรมตรวจสอบว่าสตริงหนึ่งกลายเป็นอีกสตริงหนึ่งได้โดยลบ 1 ตัวอักษรใน Python

    สมมติว่าเรามีสตริง s และ t ต้องตรวจสอบว่าลบ 1 ตัวอักษรจาก s ได้ t หรือไม่ ตัวอย่าง: s = world, t = wrld → True (ลบ o) ขั้นตอนการแก้ปัญหา (Brute Force ลบทีละตัว) วนลูป i จาก 0 ถึง len(s)-1: temp = s[:i] + s[i+1:] (ลบตัวที่ i) หาก temp == t คืนค่า True คืนค่า False ตั

  11. โปรแกรมหาผลรวมหลักตัวเลขจนเหลือ 1 หลักใน Python

    สมมติว่าเรามีจำนวนบวก n บวกหลักตัวเลขซ้ำจนได้ตัวเลข 1 หลัก (Digital Root) ตัวอย่าง: 9625 → 9+6+2+5=22 → 2+2=4 ผลลัพธ์ 4 ขั้นตอนการแก้ปัญหา (Recursive Digit Sum) หาก n < 10 คืนค่า n s = 0, l = floor(log10(n)) + 1 (จำนวนหลัก) วนลูป l รอบ: s += n % 10; n //= 10 เรียก recur

  12. โปรแกรมนับ Substring ความยาว K ที่เกิดขึ้นมากกว่า 1 ครั้งใน Python

    สมมติว่าเรามีสตริง s และตัวเลข k ต้องหาจำนวน substring ความยาว k ที่เกิดขึ้นมากกว่า 1 ครั้งใน s ตัวอย่าง: s = xxxyyy, k = 2 ผลลัพธ์ 2 (คือ xx และ yy) ขั้นตอนการแก้ปัญหา (Sliding Window + Counter) สร้างรายการ seen เก็บ substring ทุกตัวความยาว k นับความถี่ด้วย Counter 1 ตัวอย่างโค้ด Python

  13. โปรแกรมตรวจสอบว่าสตริงเป็น Repeating String หรือไม่ใน Python

    สมมติว่าเรามีสตริง ต้องตรวจสอบว่ามันเป็น repeating string (ประกอบด้วย substring ซ้ำๆ) หรือไม่ ตัวอย่าง: helloworldhelloworld → True (ซ้ำ helloworld 2 ครั้ง) ขั้นตอนการแก้ปัญหา (Factor-based Check) n = len(s) หาตัวหารทั้งหมดของ n (factor pairs) สำหรับแต่ละ factor i (ยกเว้น n เอง):

  14. โปรแกรมตรวจสอบว่ากลับด้าน Sublist ของ List หนึ่งได้ List อีกอันหนึ่งหรือไม่ใน Python

    สมมติว่าเรามีรายการตัวเลข A, B ต้องเลือก sublist ใน A บางส่วนกลับด้าน (หลายครั้งก็ได้) ดูว่าได้ B หรือไม่ ตัวอย่าง: A = [2, 3, 4, 9, 10], B = [4, 3, 2, 10, 9] → True (กลับ [2,3,4] และ [9,10]) ขั้นตอนการแก้ปัญหา (Frequency Count) นับความถี่ใน A และ B ด้วย Counter หากความถี่ทุกตัวเท่ากัน → True

  15. โปรแกรมกลับลำดับคำในสตริงใน Python

    สมมติว่าเรามีสตริงคำคั่นด้วยช่องว่าง ต้องกลับลำดับคำ ตัวอย่าง: Hello world, I love python programming → programming python love I world, Hello ขั้นตอนการแก้ปัญหา temp = s.split( ) แยกคำ temp = list(reversed(temp)) กลับลำดับ คืนค่า .join(temp) ตัวอย่างโค้ด Python class Solution: def s

  16. โปรแกรมคำนวณปีที่ใช้ถึงเป้าหมายเงินลงทุนด้วยอัตราดอกเบี้ยสลับกันใน Python

    สมมติว่าเรามีพารามิเตอร์ P, O, E, T: เงินต้น P ดอลลาร์ ตลาดหุ้นให้ผลตอบแทนสลับกัน E% และ O% ต่อปี ต้องการหาว่ากี่ปีถึงจะได้ ≥ T ดอลลาร์ ตัวอย่าง: P=200, O=10, E=25, T=300 ผลลัพธ์ 3 ปี (ปี1: +25%=250, ปี2: +10%=275, ปี3: +10%=302.5) ขั้นตอนการแก้ปัญหา (Simulation) ans = 0 While P < T:

  17. โปรแกรมตรวจสอบว่าเดินไปซ้ายสุดหรือขวาสุดได้หรือไม่ในสตริง R/B/จุด ใน Python

    สมมติว่าเรามีสตริงที่มี R (ตำแหน่งปัจจุบัน), B (บล็อก), . (ว่าง) ในหนึ่งก้าวเดินไปตำแหน่งติดกันได้ถ้าว่าง ต้องตรวจสอบว่าถึงขอบซ้ายสุดหรือขวาสุดได้หรือไม่ ตัวอย่าง: s = ...........R.....BBBB..... ผลลัพธ์ True (ไปซ้ายสุดได้ ไม่มี B บлок) ขั้นตอนการแก้ปัญหา (Simple Check) r_pos = s.find(R) คืนค่

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

    สมมติว่าหุ่นยนต์อยู่ที่ (0,0) มีรายการการเคลื่อนที่ N, S, W, E ต้องตรวจสอบว่าสามารถไปถึงพิกัด (x,y) ได้หรือไม่ ตัวอย่าง: moves = [N,N,E,E,S], coord = [2,1] ผลลัพธ์ True ขั้นตอนการแก้ปัญหา (Simulation) temp_coord = [0, 0] สำหรับแต่ละ move: N: temp_coord[1] += 1 S: temp_coord[1

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

    สมมติว่าเรามีรายการตัวเลขที่เรียงแล้ว nums ต้องหาผลรวมความต่างสัมบูรณ์ระหว่างทุกคู่ (i,j) และ (j,i) นับคนละคู่ หากใหญ่ mod 10⁹+7 ตัวอย่าง: nums = [2, 4, 8] ผลลัพธ์ 24 = |2-4|+|2-8|+|4-2|+|4-8|+|8-2|+|8-4| ขั้นตอนการแก้ปัญหา (Mathematical Formula O(n)) m = 10**9 + 7 total = 0 สำหรับ i จาก 0

  20. โปรแกรมตรวจสอบว่าตัวเลขเขียนเป็นผลรวมแฟกทอเรียลที่ไม่ซ้ำกันได้หรือไม่ใน Python

    สมมติว่าเรามีจำนวนบวก n ต้องตรวจสอบว่าเขียนเป็นผลรวมของแฟกทอเรียล (factorial) ที่ไม่ซ้ำกันได้หรือไม่ ตัวอย่าง: n = 144 ผลลัพธ์ True เพราะ 4! + 5! = 24 + 120 = 144 ขั้นตอนการแก้ปัญหา (Greedy จากแฟกทอเรียลใหญ่ไปเล็ก) สร้างรายการแฟกทอเรียล ≤ n: 1!, 2!, 3!, ... วนลูปจากแฟกทอเรียลใหญ่สุดลงมาหน้าตั

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