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

    ปัญหา ให้ Preorder traversal ของ BST ตรวจสอบว่า ทุกโหนดภายใน (internal node) มีลูกเพียงข้างเดียว (ไม่มีโหนดที่มีลูก 2 ข้าง) ข้อสังเกตสำคัญ ใน BST: โหนดซ้าย < โหนด < โหนดขวา ถ้าโหนดมีลูก 2 ข้าง → จะมีค่าระหว่างโหนดปัจจุบันกับโหนดสุดท้ายใน preorder อัลกอริทึม O(n) สำหรับแต่ละโหนด preorder[i]: nex

  2. หมุนเมทริกซ์ 90 องศาตามเข็มนาฬิกา ใน Python

    ปัญหา ให้เมทริกซ์ n x n หมุน 90 องศาตามเข็มนาฬิกา (in-place หรือสร้างใหม่) ตัวอย่าง Input: [[1, 5, 7], [9, 6, 3], [2, 1, 3]] Output: [[2, 9, 1], [1, 6, 5], [3, 3, 7]] วิธีที่ 1: สร้างเมทริกซ์ใหม่ (เข้าใจง่าย) def rotate(matrix): n = len(matrix) rotated = [[0]*n for _ in range(n)]

  3. ดึงอัตราแลกเปลี่ยนเงินตรา Real-time ด้วย Python

    บทนำ Python เหมาะสำหรับเรียก API ดึงอัตราแลกเปลี่ยน จะใช้ไลบรารี forex-python หรือ REST API โดยตรง 1. ใช้ forex-python (ง่ายที่สุด) pip install forex-python from forex_python.converter import CurrencyRates c = CurrencyRates() # อัตราล่าสุด rate = c.get_rate(USD, THB) print(f1 USD = {rate} THB)

  4. ประมวลผล HTML ด้วย HTMLParser ใน Python

    บทนำ โมดูล html.parser มีคลาส HTMLParser สำหรับแยกวิเคราะห์ (parse) HTML สามารถจับ tag เริ่มต้น tag สิ้นสุด และข้อมูลระหว่าง tag ได้ ตัวอย่าง HTML ตัวอย่าง <html> <head> <title>Welcome to Tutorials Point!</title> </head> <body> <h1>Learn anything!</h1&g

  5. Memory-mapped File Support ใน Python (mmap)

    บทนำ mmap (Memory-mapped file) แมปไฟล์เข้าหน่วยความจำ เข้าถึง/แก้ไขไฟล์เหมือน byte array ใน RAM เร็วกว่าการอ่าน/เขียนไฟล์ปกติสำหรับไฟล์ขนาดใหญ่ 1. อ่านไฟล์ด้วย mmap import mmap def read_mmap(filename): with open(filename, r, encoding=utf-8) as f: with mmap.mmap(f.fileno(), 0, access=m

  6. ตรวจสอบว่า suffix ตรงกับสตริงในลิสต์หรือไม่ ใน Python

    ปัญหา ให้ลิสต์สตริง lst และสตริง suffix ตรวจสอบว่ามีสตริงในลิสต์ที่ลงท้ายด้วย suffix หรือไม่ วิธีที่ 1: ใช้ any() (แนะนำ) lst = [Tuesday, Friday, Sunday] suffix = day if any(s.endswith(suffix) for s in lst): print(f{suffix} is a suffix of some string in the list) else: print(f{suffix} is

  7. ใช้ Checkbox Widget ใน Kivy

    บทนำ CheckBox ใน Kivy ใช้สำหรับตัวเลือก On/Off มักใช้ร่วมกับ GridLayout จัดวาง Label และ Checkbox คู่กัน ตัวอย่างโค้ดสมบูรณ์ import kivy from kivy.app import App from kivy.uix.label import Label from kivy.uix.checkbox import CheckBox from kivy.uix.gridlayout import GridLayout class CheckBoxGrid(

  8. แปลง Nested Dictionary เป็น Flat Dictionary ใน Python

    ปัญหา แปลง Dictionary ซ้อนหลายชั้น (Nested) ให้เป็น Dictionary ชั้นเดียว (Flat) โดยรวมคีย์ด้วย separator ตัวอย่าง input = { id: 0001, name: hotdog, image: { url: images/0001.jpg, thumbnail: { url: images/thumbnails/0001.jpg, height,width: 2x4

  9. นับจำนวนบิต 1 (Set Bits) ในช่วงที่กำหนดของตัวเลข ใน Python

    ปัญหา ให้ตัวเลข n และช่วงบิต l ถึง r (นับจากขวา เริ่มที่ 1) นับจำนวนบิต 1 ในช่วงนั้น ตัวอย่าง n = 83 (binary: 1010011), l=1, r=6 → บิต 1-6: 010011 → มี 1 สามบิต → 3 วิธีที่ 1: ใช้ bin() และสไลซ์สตริง def count_set_bits_range(n, l, r): binary = bin(n)[2:][::-1] # กลับสตริงเพื่อให้ index 0 = บ

  10. ดึงคีย์เฉพาะจาก Dictionary ใน Python

    ปัญหา ให้ Dictionary dictA ต้องการสร้าง Dictionary ใหม่ที่มีเฉพาะคีย์ที่ต้องการ วิธีที่ 1: Dictionary Comprehension (แนะนำ) dictA = {Sun: 2 PM, Tue: 5 PM, Wed: 3 PM, Fri: 9 PM} wanted = {Fri, Sun} result = {k: dictA[k] for k in wanted if k in dictA} print(result) # {Fri: 9 PM, Sun: 2 PM} วิธีที

  11. ใช้พารามิเตอร์ file ใน print() เขียนข้อมูลลงไฟล์ใน Python

    บทนำ ฟังก์ชัน print() ไม่ได้พิมพ์หน้าจออย่างเดียว สามารถเขียนลงไฟล์หรือสตรีมเอาต์พุตอื่นได้ด้วยพารามิเตอร์ file 1. เขียนลงไฟล์ with open(exam_score.txt, w) as f: exam_name = Degree exam_date = 2-Nov exam_score = 323 print(exam_name, exam_date, exam_score, file=f, sep=,) # ไฟล์ exa

  12. ใช้ FloatLayout ใน Kivy สำหรับจัดวาง Widget แบบสัมพัทธ์และสัมบูรณ์

    บทนำ Kivy เป็นไลบรารี Python สำหรับพัฒนาแอปพลิเคชันมัลติทัช รองรับ Android และ Desktop FloatLayout จัดวาง widget ด้วยตำแหน่งสัมบูรณ์ (absolute) หรือสัมพัทธ์ (relative) 1. ตำแหน่งสัมบูรณ์ (Absolute Position) ใช้ pos=(x, y) ตำแหน่งคงที่ ไม่เปลี่ยนเมื่อปรับขนาดหน้าต่าง from kivy.app import App from k

  13. ลบช่วงหน้าและหลังของลิสต์ใน Python (Front and Rear Range Deletion)

    ปัญหา ต้องการลบจำนวนสมาชิก v ตัวจากหน้าและหลังของลิสต์พร้อมกัน วิธีที่ 1: List Slicing (แนะนำ) สร้างลิสต์ใหม่จาก slice list[v:-v] listA = [Sun,Mon,Tue,Wed,Thu,Fri,Sat] v = 2 new_list = listA[v:-v] print(new_list) # [Tue, Wed, Thu] วิธีที่ 2: ใช้คำสั่ง del (แก้ไขลิสต์เดิม) ลบจากหลังก่อน แล้วค่อย

  14. สร้าง QR Code ด้วยโมดูล pyqrcode ใน Python

    บทนำ QR Code เป็นรหัสสองมิติที่เก็บข้อมูลได้มากกว่าบาร์โค้ด ท่านิยมใช้ในการชำระเงิน ล็อกอิน เว็บไซต์ และติดตามสินค้า โมดูล pyqrcode ช่วยสร้าง QR Code ได้ง่ายใน Python การติดตั้ง pip install pyqrcode pypng pypng จำเป็นสำหรับบันทึกเป็นไฟล์ PNG 1. QR Code แบบ Alphanumeric (ค่าเริ่มต้น) import pyqrc

  15. ตรวจสอบว่ากลับด้าน subarray หนึ่งทำให้อาร์เรย์เรียงลำดับได้หรือไม่ ใน Python

    ปัญหา ให้อาร์เรย์ nums (ค่าไม่ซ้ำ) ตรวจสอบว่ากลับด้าน subarray เพียง 1 ครั้ง ทำให้อาร์เรย์เรียงได้หรือไม่ (ถ้าเรียงอยู่แล้วก็ True) ตัวอย่าง nums = [4,6,27,25,15,9,37,42] → กลับ [9,15,25,27] ได้ [4,6,9,15,25,27,37,42] → True แนวคิดการแก้ปัญหา หาจุดที่เริ่มไม่เรียง (i) หาจุดที่จบไม่เรียง (j) - ส่

  16. ตรวจสอบว่าสามารถสร้างสามเหลี่ยมมุมฉากจากพื้นที่และด้านตรงข้ามมุมฉากได้หรือไม่ ใน Python

    ปัญหา ให้ด้านตรงข้ามมุมฉาก hypo และพื้นที่ area หาฐานและสูงของสามเหลี่ยมมุมฉาก ถ้าไม่ได้คืน False ตัวอย่าง hypo = 10, area = 24 → ฐาน=6, สูง=8 (6²+8²=10², ½×6×8=24) → (6, 8) แนวคิดการแก้ปัญหา (Binary Search) พื้นที่สูงสุดเมื่อฐาน=สูง: maxArea = 0.5 * (hypo/√2)² = hypo²/4 maxArea → False Binary

  17. ตรวจสอบว่าสตริงปฏิบัติตามลำดับตัวอักษรใน pattern หรือไม่ ใน Python

    ปัญหา ให้สตริง s และ pattern t (ไม่มีตัวซ้ำ) ตรวจสอบว่าตัวอักษรใน s ปรากฏตามลำดับเดียวกับใน t หรือไม่ ตัวอย่าง s = hello world, t = hw → h อยู่ก่อน w ใน s → True แนวคิดการแก้ปัญหา สำหรับคู่ตัวอักษรติดกันใน t (x, y) หาตำแหน่งสุดท้ายของ x ใน s (rindex) หาตำแหน่งแรกของ y ใน s (index) ต้องมี last_x

  18. ตรวจสอบว่าสตริงสองสตริงเป็นการหมุนเวียน (Rotation) ของกันหรือไม่ ใน Python

    ปัญหา ให้สตริง s และ t ตรวจสอบว่า t เป็นการหมุนเวียนของ s หรือไม่ ตัวอย่าง s = hello, t = llohe → t อยู่ใน s+s = hellohello → True แนวคิดการแก้ปัญหา ถ้าความยาวต่างกัน → False เช็คว่า t เป็น substring ของ s+s โค้ดตัวอย่าง def solve(s, t): if len(s) != len(t): return False return

  19. ตรวจสอบว่ามี subarray ที่ผลคูณเท่ากับ k หรือไม่ ใน Python

    ปัญหา ให้อาร์เรย์ nums (มีทั้งบวกและลบ) และค่า k ตรวจสอบว่ามี subarray ติดต่อกันที่ผลคูณเท่ากับ k หรือไม่ ตัวอย่าง nums = [-2, -1, 1, 3, 5, 8], k = 6 → subarray [-2, -1, 3] ผลคูณ = 6 → True แนวคิดการแก้ปัญหา (Kadane แบบผลคูณ) เก็บ max_prod และ min_prod จนถึง index ปัจจุบัน (เพราะลบ×ลบ = บวก) เจอ

  20. ตรวจสอบว่าสตริงมี prefix และ suffix เป็นพาลินโดรมหรือไม่ ใน Python

    ปัญหา ให้สตริง s ตรวจสอบว่ามี prefix (ยาว ≥ 2) เป็นพาลินโดรม และ suffix (ยาว ≥ 2) เป็นพาลินโดรม หรือไม่ ตัวอย่าง s = levelishighforracecar → prefix level (พาลินโดรม), suffix racecar (พาลินโดรม) → True แนวคิดการแก้ปัญหา หา prefix พาลินโดรมแรก (ความยาว ≥ 2) หา suffix พาลินโดรมแรก (ความยาว ≥ 2) ถ้า

Total 9001 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:211/451  20-คอมพิวเตอร์/Page Goto:1 205 206 207 208 209 210 211 212 213 214 215 216 217