Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++
C++
  1. Length of Last Word ใน C++

    แนวคิด สมมติว่ามีสตริง s สามารถมีตัวอักษรอังกฤษและ whitespace ได้ ให้หาความยาวของคำสุดท้ายในสตริง หากไม่มีคำสุดท้าย ให้คืนค่า 0 เช่น ถ้าอินพุตคือ I love Programming ผลลัพธ์คือ 11 วิธีแก้: n := 0 สำหรับแต่ละคำ temp ในสตริง: n := ขนาดของ temp คืนค่า n ตัวอย่าง temp) n = temp.size(); retu

  2. Remove Duplicates from Sorted List ใน C++

    แนวคิด สมมติว่ามี linked list ที่เรียงแล้ว ให้ลบค่าซ้ำทั้งหมด ทำให้แต่ละสมาชิกปรากฏเพียงครั้งเดียว เช่น ถ้าอินพุตคือ [1,1,2,3,3,3,4,5,5] ผลลัพธ์คือ [1,2,3,4,5] วิธีแก้: dummy := สร้างโหนดใหม่ค่า -inf next of dummy := head curr = dummy while curr ไม่เป็นศูนย์: next = next of curr while (next ไม่ใ

  3. Same Tree ใน C++

    แนวคิด สมมติว่ามี binary trees สองต้น ให้กำหนดฟังก์ชันตรวจสอบว่าทั้งสองเหมือนกันหรือไม่ Binary trees ถือว่าเหมือนกันเมื่อโครงสร้างเหมือนกันและโหนดมีค่าเท่ากัน เช่น ถ้าอินพุตคือ [1,2,3],[1,2,3] ผลลัพธ์คือ True วิธีแก้: กำหนดฟังก์ชัน isSameTree รับโหนด p และ q ถ้า p เป็น NULL และ q เป็น NULL: คืนค่

  4. Minimum Depth of Binary Tree ใน C++

    แนวคิด สมมติว่ามี binary tree ให้หาความลึกขั้นต่ำของต้นไม้นี้ ความลึกขั้นต่ำคือจำนวนโหนดตามเส้นทางสั้นที่สุดจากโหนดรากลงสู่โหนดใบที่ใกล้ที่สุด เช่น ถ้าอินพุตเป็น: ผลลัพธ์คือ 2 วิธีแก้: กำหนดอาร์เรย์ aa ของ tree nodes แทรก root ลงท้าย aa กำหนดอีกอาร์เรย์ ak ของ tree nodes level := 0 ถ้า root เป็น

  5. Pascal's Triangle II ใน C++

    แนวคิด สมมติว่ามีดัชนี k ที่ไม่เป็นลบ โดย k <= 33 ให้หาแถวที่ k ของสามเหลี่ยมพาสคาล เช่น ถ้าอินพุตคือ 3 ผลลัพธ์คือ [1,3,3,1] วิธีแก้: กำหนดอาร์เรย์ pascal ขนาด rowIndex + 1 เติม 0 วนลูป r := 0 ถึง rowIndex: pascal[r] := 1, prev := 1 วนลูป i := 1 ถึง r - 1: cur := pascal[i], pascal[i] := pascal[i

  6. Excel Sheet Column Title ใน C++

    แนวคิด สมมติว่ามีจำนวนเต็มบวก ให้หาชื่อคอลัมน์ที่สอดคล้องกันใน Excel ดังนี้ [1: A], [2: B], [26: Z], [27: AA], [28: AB] เป็นต้น เช่น ถ้าอินพุตคือ 28 ผลลัพธ์คือ AB วิธีแก้: while n ไม่เป็นศูนย์: n := n - 1 res := res + n mod 26 + ASCII ของ A n := n / 26 กลับลำดับอาร์เรย์ res คืนค่า res ตัวอย่

  7. Isomorphic Strings ใน C++

    แนวคิด สมมติว่ามีสตริง s และ t ให้ตรวจสอบว่ามัน isomorphic หรือไม่ สองสตริงเป็น isomorphic หากตัวอักษรใน s สามารถแทนที่เพื่อได้ t ทุกครั้งที่ตัวอักษรปรากฏ ต้องแทนที่ด้วยอีกตัวอักษรหนึ่งพร้อมกันรักษาลำดับ ไม่มีสองตัวอักษร map ไปตัวเดียวกัน แต่ตัวอักษรอาจ map ไปตัวมันเองได้ เช่น ถ้าอินพุตคือ s = egg

  8. Contains Duplicate II ใน C++

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

  9. Implement Stack using Queues ใน C++

    แนวคิด สมมติว่าต้องการ implement stack ด้วย queue ต้องกำหนดเมธอดสำหรับ stack: push(x) - Push x เข้า stack pop() - ลบและคืนค่าองค์ประกอบบนสุดของ stack top() - คืนค่าองค์ประกอบบนสุดของ stack empty() - คืนค่าว่า stack ว่างหรือไม่ เช่น ถ้าเรียก push(10), push(20), แล้ว pop(), pop() ผลลัพธ์คือ 20, 10

  10. Word Pattern ใน C++

    แนวคิด สมมติว่ามี pattern และสตริง str ให้หาว่า str ตาม pattern เดียวกันหรือไม่ follow หมายถึงมี bijection ระหว่างตัวอักษรใน pattern และคำที่ไม่ว่างใน str เช่น ถ้าอินพุตคือ pattern = cbbc, str = word pattern pattern word ผลลัพธ์คือ True วิธีแก้: strcin := str กำหนดอาร์เรย์คำ สำหรับแต่ละคำใน strci

  11. Nim Game ใน C++

    แนวคิด สมมติว่าเล่น Nim Game กับอีกคน มีกองหิน แต่ละครั้งผู้เล่นสลับกันเอาหิน 1-3 ก้อน ผู้ที่เอาหินก้อนสุดท้ายชนะ ผู้เล่น 1 เริ่มก่อน ทั้งคู่ฉลาดและมีกลยุทธ์เหมาะสม ต้องหาว่าผู้เล่น 1 ชนะได้หรือไม่จากจำนวนหินในกอง เช่น ถ้าอินพุตคือ 5 ผลลัพธ์คือ true มีหิน 5 ก้อน ตอนเริ่ม ถ้าผู้เล่น 1 เอา 1 ก้อน ผู้

  12. Power of Four ใน C++

    แนวคิด สมมติว่ามีจำนวนเต็ม ให้ตรวจสอบว่าเป็นกำลังของ 4 หรือไม่ เช่น ถ้าอินพุตคือ 16 ผลลัพธ์คือ True วิธีแก้: ถ้า num < 0: คืนค่า false ถ้า num & (num - 1) ไม่เป็นศูนย์: คืนค่า false ถ้า (num & 01010101010101010101010101010101) เป็นศูนย์: คืนค่า false คืนค่า true ตัวอย่าง #include <bits/stdc+

  13. Intersection of Two Arrays ใน C++

    แนวคิด สมมติว่ามีอาร์เรย์สองอาร์เรย์ ให้หาจุดตัดของทั้งสอง เช่น ถ้าอินพุตคือ [1,5,3,6,9],[2,8,9,6,7] ผลลัพธ์คือ [9,6] วิธีแก้: กำหนด map mp1, mp2 กำหนดอาร์เรย์ res สำหรับ x ใน nums1: เพิ่ม mp1[x] ขึ้น 1 สำหรับ x ใน nums2: เพิ่ม mp2[x] ขึ้น 1 0: แทรก key of x ลงท้าย res คืนค่า res ตัวอย่าง 0)

  14. Guess Number Higher or Lower ใน C++

    แนวคิด สมมติว่าเล่น Guess Game คุณสมบัติเกม: ผู้เล่น 1 เลือกตัวเลข 1 ถึง n ผู้เล่น 2 ทายว่าผู้เล่น 1 เลือกอะไร ทุกครั้งที่ทายผิด ผู้เล่น 1 จะบอกว่าตัวเลขสูงกว่าหรือต่ำกว่า ใช้ฟังก์ชัน guess(num) คืนค่า 3 ผลลัพธ์: -1: ตัวเลขของผู้เล่น 1 ต่ำกว่า 1: ตัวเลขของผู้เล่น 1 สูงกว่า 0: ตรงกัน เช่น ถ้าอิน

  15. Find the Difference ใน C++

    แนวคิด สมมติว่ามีสตริง s และ t ประกอบด้วยตัวอักษรพิมพ์เล็กเท่านั้น สตริง t สร้างโดยการสุ่มลำดับ s แล้วเพิ่มตัวอักษรอีกหนึ่งตัวที่ดัชนีสุ่ม ต้องหาตัวอักษรที่เพิ่มใน t เช่น ถ้าอินพุตคือ mnopq,pqmnot ผลลัพธ์คือ t นี่คือตัวอักษรเพิ่ม วิธีแก้: sSum := 0, tSum := 0 วนลูป i := 0 ถึงความยาว s - 1: sSum :

  16. Convert a Number to Hexadecimal ใน C++

    แนวคิด สมมติว่ามีจำนวนเต็ม ให้ออกอัลกอริทึมแปลงเป็นเลขฐานสิบหก สำหรับจำนวนลบใช้วิธี twos complement เช่น ถ้าอินพุตคือ 254 และ -12 ผลลัพธ์คือ fe และ fffffff4 ตามลำดับ วิธีแก้: ถ้า num1 เท่ากับ 0: คืนค่า 0 num := num1 s := สตริงว่าง while num ไม่เป็นศูนย์: temp := num mod 16 ถ้า temp <= 9: s := s

  17. Longest Palindrome ใน C++

    แนวคิด สมมติว่ามีสตริงประกอบด้วยตัวอักษรพิมพ์เล็กหรือใหญ่ ให้หาความยาวของ longest palindromes ที่สร้างได้จากตัวอักษรเหล่านี้ สตริงเป็น case sensitive ดังนั้น Aa ไม่ถือเป็น palindrome เช่น ถ้าอินพุตคือ abccccdd ผลลัพธ์คือ 7 เพราะ longest palindrome ที่สร้างได้คือ dccaccd ความยาว 7 วิธีแก้: กำหนด m

  18. Third Maximum Number ใน C++

    แนวคิด สมมติว่ามีอาร์เรย์จำนวนเต็มไม่ว่าง ให้หาตัวเลขสูงสุดอันดับสามในอาร์เรย์นี้ หากไม่มีตัวเลขอันดับสาม ให้คืนค่าตัวเลขสูงสุด แท้ท้าทายคือต้องแก้ด้วยเวลาเชิงเส้น เช่น ถ้าอินพุตคือ [5,3,8,9,1,4,6,2] ผลลัพธ์คือ 6 วิธีแก้: เริ่มต้น a, b, c ด้วย NULL วนลูป i := 0 ถึงขนาด nums - 1: ค่า a: c := b,

  19. Number of Segments in a String ใน C++

    แนวคิด สมมติว่ามีสตริง s ต้องนับจำนวน segments ในสตริง โดย segment ถูกกำหนดให้เป็นลำดับตัวอักษรติดต่อกัน (ไม่มี whitespace) เช่น ถ้าอินพุตคือ Hello, I love programming ผลลัพธ์คือ 4 เพราะมี 4 segments วิธีแก้: n := 0 วนลูป i := 0 ถึงขนาด s - 1: ถ้า s[i] ไม่ใช่ white space: เพิ่ม n ขึ้น 1 while (i

  20. Arranging Coins ใน C++

    แนวคิด สมมติว่ามีเหรียญ n เหรียญ ต้องการจัดเป็นรูปบันได ทุกแถวที่ k ต้องมีเหรียญ k เหรียญ ถ้ามี n ให้หาจำนวนแถวบันไดเต็มที่สุดที่สร้างได้ เช่น ถ้าอินพุตคือ 5 ผลลัพธ์คือ 2 ใช้ 5 เหรียญสร้างได้ 2 แถวเต็ม แถวสุดท้ายต้องการ 3 แต่เหลือ 2 ***** สามารถทำได้โดยตรงด้วยสูตร: $$\frac{\sqrt{(8n+1)}-1}{2}$$ ต

Total 6007 -คอมพิวเตอร์  FirstPage PreviousPage NextPage LastPage CurrentPage:187/301  20-คอมพิวเตอร์/Page Goto:1 181 182 183 184 185 186 187 188 189 190 191 192 193