Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. อัลกอริทึม In-Place สำหรับการแปลง String (ย้ายตัวอักษรตำแหน่งคู่ไปท้าย) ใน C++

    โจทย์ปัญหา ได้รับ String ให้ย้ายตัวอักษรที่อยู่ตำแหน่ง คู่ (Even Index: 0, 2, 4...) ไปอยู่ท้าย String โดย รักษาลำดับสัมพัทธ์ ของทั้งกลุ่มตัวอักษรตำแหน่งคู่และคี่ ใช้ In-Place และ O(n) Time ตัวอย่าง นำเข้า: a1b2c3d4e5f6g7h8i9j1k2l3m4 ผลลัพธ์: abcdefghijklm1234567891234 คำอธิบาย: ตัวอักษร (Index 0,2,

  2. มุมระหว่างเส้นตรงสัมผัสและสายตรง เมื่อทราบมุมในส่วนตรงข้ามใน C++

    โจทย์ปัญหา ได้รับวงกลมที่มีสายตรง (Chord) และเส้นตรงสัมผัส (Tangent) ตัดกันที่จุดหนึ่ง ทราบมุมในส่วนตรงข้าม (Alternate Segment) ให้หามุมระหว่างสายตรงและเส้นตรงสัมผัส ทฤษฎีทางเรขาคณิต (Alternate Segment Theorem) ทฤษฎี: มุมระหว่างเส้นตรงสัมผัสและสายตรง ที่จุดสัมผัส เท่ากับ มุมในส่วนตรงข้ามที่สายตรงนั

  3. Array Members ใน Struct/Class ถูก Deep Copy อัตโนมัติใน C++

    หัวใจสำคัญ ใน C/C++ เมื่อ Assign Struct/Class Variable ให้กับอีกตัวหนึ่งประเภทเดียวกัน Array Members จะถูก Deep Copy อัตโนมัติ โดย Compiler (ไม่ใช่ Shallow Copy) ตัวอย่างยืนยัน #include <iostream> #include <cstring> using namespace std; struct Test { char str[20]; }; int main() {

  4. จัดเรียงโหนดสระและพยัญชนะใน Linked List (C++)

    โจทย์ปัญหา ได้รับ Linked List ที่แต่ละโหนดเก็บตัวอักษร ให้จัดเรียงใหม่โดยย้ายโหนดที่เป็น สระ (Vowels) ไปอยู่ข้างหน้า และ พยัญชนะ (Consonants) ไปอยู่ข้างหลัง รักษาลำดับเดิมภายในแต่ละกลุ่ม (Stable) ตัวอย่าง นำเข้า: A → M → A → Z → O → N ผลลัพธ์: A → A → O → M → Z → N แนวคิดการแก้ปัญหา (Two Lists + M

  5. นิพจน์วงเล็บสมดุลที่ตำแหน่งกำหนดต้องเป็นวงเล็บเปิดใน C++

    โจทย์ปัญหา ได้รับจำนวนเต็ม n และอาร์เรย์ position[] ขนาด 2n (1-based indexing) โดย position[i] = 1 หมายถึงตำแหน่ง i ต้องเป็นวงเล็บเปิด [ หา จำนวนวิธี สร้างนิพจน์วงเล็บสมดุลที่ถูกต้อง ตัวอย่าง นำเข้า: n = 2, position = [1, 0, 0, 0] (ตำแหน่ง 1 ต้องเป็น [) ผลลัพธ์: 2 วิธีที่เป็นไปได้: [ ] [ ] และ [ [

  6. โจทย์ Bin Packing (ลดจำนวน Bin ให้น้อยที่สุด) ใน C++

    โจทย์ปัญหา ได้รับ n ชิ้นงานที่มีน้ำหนักต่างกัน และ Bin ที่มีความจุ C ให้จัดชิ้นงานลง Bin ให้น้อยที่สุด (สมมติว่าน้ำหนักทุกชิ้น ≤ C) ตัวอย่าง นำเข้า: weights = {4, 1, 8, 1, 4, 2}, C = 10 ผลลัพธ์: 2 bins การจัด: Bin 1: {4, 4, 2} = 10, Bin 2: {8, 1, 1} = 10 Lower Bound (ขอบล่าง) จำนวน Bin ขั้นต่ำ ≥ c

  7. Binary Indexed Tree (Fenwick Tree) ใน C++

    ภาพรวม Binary Indexed Tree (BIT) หรือ Fenwick Tree เป็นโครงสร้างข้อมูลสำหรับจัดการ Prefix Sum** และ **Point Update** ได้ทั้งคู่ใน O(log n) เปรียบเทียบกับ Array ธรรมดา OperationArray (Values)Array (Prefix Sums)Fenwick Tree Point UpdateO(1)O(n)O(log n) Prefix Sum QueryO(n)O(1)O(log n)

  8. การแปลง Binary Tree เป็น Binary Search Tree ด้วย STL Set ใน C++

    โจทย์ปัญหา ได้รับ Binary Tree ให้แปลงเป็น Binary Search Tree (BST) โดย รักษาโครงสร้างต้นไม้เดิมไว้ (โหนดเดิมอยู่ที่เดิม แค่เปลี่ยนค่า) ตัวอย่าง Input Tree: 11 / \ 3 8 / \ 9 5 Output BST: 9 / \ 5 11 / \ 3 8 แนวคิดการแก้ปัญหา (ใช้ STL Set)

  9. Binomial Heap ใน C++ (โครงสร้างข้อมูล Binomial Heap)

    ภาพรวม Binomial Heap เป็นขยายของ Binary Heap ที่รองรับการ Merge/Union ได้เร็วขึ้น (O(log n)) พร้อมรักษา Operation อื่นๆ ของ Binary Heap Binomial Tree คืออะไร? Binomial Tree ของ Order k สร้างจากการนำ Binomial Tree Order k-1 สองต้น มารวมกัน โดยทำให้ต้นหนึ่งเป็น Leftmost Child ของอีกต้น คุณสมบัติของ

  10. ZigZag Conversion ใน C++ (แปลง String เป็นรูป ZigZag)

    โจทย์ปัญหา ได้รับ String และจำนวนแถว (numRows) ให้เขียน String ในรูปแบบ ZigZag แล้วอ่านแถวต่อแถวเพื่อสร้าง String ใหม่ ตัวอย่าง นำเข้า: IWANTTOLEARNCODE, numRows = 3 รูปแบบ ZigZag: I T A O W N O E R C D A L N E อ่านแถวต่อแถว: ITAOWNOERCDALNE แนวคิด

  11. การแปลง String เป็น Integer (atoi) ใน C++

    โจทย์ปัญหา Implement ฟังก์ชัน atoi (ASCII to Integer) แปลง String เป็น Integer โดย: ข้าม Whitespace นำหน้า อ่านเครื่องหมาย + หรือ - (ถ้ามี) อ่านตัวเลข 0-9 ต่อเนื่อง หยุดเมื่อเจอตัวอักษรที่ไม่ใช่ตัวเลข จัดการ Overflow (Clamp ไว้ที่ INT_MIN/INT_MAX) ตัวอย่าง InputOutputคำอธ

  12. ฟังก์ชัน deque::crbegin() ใน C++ STL

    ภาพรวม deque::crbegin() เป็น Member Function ของ std::deque (header <deque>) คืนค่า Const Reverse Iterator ชี้ไปยัง องค์ประกอบสุดท้าย ของ Deque (Reverse Beginning) Syntax const_reverse_iterator crbegin() const noexcept; คุณสมบัติ crbegin = Constant Reverse Begin คืนค่า const_reverse

  13. ฟังก์ชัน deque::cbegin() ใน C++ STL

    ภาพรวม deque::cbegin() เป็น Member Function ของ std::deque (header <deque>) คืนค่า Const Iterator ชี้ไปยัง องค์ประกอบแรก ของ Deque Syntax const_iterator cbegin() const noexcept; คุณสมบัติ ไม่รับพารามิเตอร์ คืนค่า const_iterator (Random Access Iterator) ใช้ อ่านค่าได้อย่างเดียว ไ

  14. ฟังก์ชัน isupper() และ islower() ใน C++ และการประยุกต์ใช้

    ภาพรวม isupper() และ islower() เป็นฟังก์ชันใน C++ (header <cctype> หรือ <ctype.h>) ใช้ตรวจสอบว่า Character หรือ String มีตัวพิมพ์ใหญ่/เล็กหรือไม่ isupper() - ตรวจสอบตัวพิมพ์ใหญ่ Syntax int isupper(int arg); ค่าที่คืน Non-zero (true) - มีตัวพิมพ์ใหญ่ (A-Z) 0 (false) - ไม่มีตัวพิ

  15. การประกาศฟังก์ชัน C/C++ ที่คืนค่า Pointer ไปยัง Array ของ Function Pointers

    โจทย์ปัญหา สร้างฟังก์ชันที่คืนค่า Pointer to Array of Integer Function Pointers ใช้สำหรับเปรียบเทียบค่าสองค่าและคืนที่อยู่หน่วยความจำของค่าที่มากกว่า แนวคิด Function Pointers Function Pointer คือตัวแปรที่เก็บที่อยู่ของฟังก์ชัน ช่วยให้สามารถส่งฟังก์ชันเป็นพารามิเตอร์ หรือเลือกฟังก์ชันที่จะรันได้ใน R

  16. ฟังก์ชัน iswblank() ใน C++ STL

    ภาพรวม iswblank() เป็นฟังก์ชันใน C++ STL (header <cwctype> หรือ <ctype.h>) ใช้ตรวจสอบว่า Wide Character เป็น Blank Character หรือไม่ Blank Character คืออะไร? Blank characters คือตัวอักษรที่ใช้เว้นวรรค แต่อาจไม่ใช่ Whitespace ทั้งหมด โดยมาตรฐาน C++ กำหนดให้เป็น: (Space, 0x20)

  17. โจทย์ 3Sum Closest ใน C++ (หา 3 ตัวที่รวมกันใกล้ Target มากที่สุด)

    โจทย์ปัญหา ได้รับอาร์เรย์ nums ขนาด n และค่า target ให้หา 3 จำนวนในอาร์เรย์ ที่ผลรวม ใกล้เคียงกับ target มากที่สุด คืนค่าผลรวมนั้น (รับประกันว่ามีคำตอบเพียง 1 ชุด) ตัวอย่าง นำเข้า: nums = [-1, 2, 1, -4], target = 1 ผลลัพธ์: 2 คำอธิบาย: Triplet [-1, 2, 1] ให้ผลรวม 2 ใกล้ target=1 มากที่สุด (ความต่าง

  18. ฟังก์ชัน iswcntrl() ใน C++ STL

    ภาพรวม iswcntrl() เป็นฟังก์ชันใน C++ STL (header <cwctype> หรือ <wctype.h>) ใช้ตรวจสอบว่า Wide Character เป็น Control Character หรือไม่ Control Character คืออะไร? Control characters คือตัวอักษรที่ ไม่แสดงผลบนหน้าจอ (Non-printing) ใช้ควบคุมการทำงานของอุปกรณ์ เช่น: \n (Newline, LF) -

  19. ฟังก์ชัน iswdigit() ใน C++ STL

    ภาพรวม iswdigit() เป็นฟังก์ชันใน C++ STL (header <cwctype>) ใช้ตรวจสอบว่า Wide Character เป็นตัวเลขทศนิยม (Decimal Digit: 0-9) หรือไม่ Syntax int iswdigit(wint_t c); พารามิเตอร์ c - Wide character ที่ต้องการตรวจสอบ (ชนิด wint_t หรือ WEOF) ค่าที่คืน Non-zero (true) - ถ้า c เป็นตัว

  20. ฟังก์ชัน iswlower() ใน C++ STL

    ภาพรวม iswlower() เป็นฟังก์ชันใน C++ STL (header <cwctype> หรือ <wctype.h>) ใช้ตรวจสอบว่า Wide Character เป็นตัวพิมพ์เล็ก (Lowercase) หรือไม่ Syntax int iswlower(wint_t c); พารามิเตอร์ c - Wide character ที่ต้องการตรวจสอบ (ชนิด wint_t หรือ WEOF) ค่าที่คืน Non-zero (true) -

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:129/301  20-คอมพิวเตอร์/Page Goto:1 123 124 125 126 127 128 129 130 131 132 133 134 135