List of topics
Giới thiệu về lớp học + cách luyện thuật toán trên Leetcode
Đào sâu vào phân tích thuật toán
Chuỗi - String
Chữa bài tập phân tích thuật toán
Mảng - Array
Hai con trỏ - Two Pointers
Chữa bài tập Chuỗi + Mảng
Ngăn xếp và Hàng đợi - Stack & Queue
Đệ quy
Chữa bài hai con trỏ + ngăn xếp
Thuật toán sắp xếp - Giải thuật tham lam
Đống - Heap
Đồ thị - Graph
Chữa bài đệ quy + sắp xếp + giải thuật tham lam
Thuật toán BFS
Thuật toán DFS
Chữa bài Heap + Đồ thị
Thuật toán Dijkstra
Cấu trúc dữ liệu Union Find
Chữa bài tập BFS + DFS
Toán học
Cây - Tree
Tìm kiếm nhị phân - Binary Search
Chữa bài Dijkstra + Union Find
Cây tìm kiếm nhị phân - Binary Search Tree
Danh sách liên kết - Linked List
Chữa bài toán + gợi ý các bài cây
Quy hoạch động cơ bản - Knapsack
Ứng dụng quy hoạch động trong trí tuệ nhân tạo
Chữa bài cây nhị phân + Tìm kiếm nhị phân

Chuỗi - String

Hình thức: Video

Chuỗi là một trong những cấu trúc dữ liệu vô cùng quan trọng giúp lưu trữ văn bản.

Trong bài học này chúng ta cùng tìm hiểu cách tiếp cận một bài thuật toán liên quan tới chuỗi.

Chi tiết nội dung:

  • Vì sao xử lý chuỗi quan trọng?
  • Đảo ngược chuỗi sử dụng vòng For
  • Đảo ngược chuỗi sử dụng 2 con trỏ
  • Leetcode 345 - Đảo ngược nguyên âm trong chuỗi
  • Chuỗi Palindrome
  • Khái niệm chuỗi con và dãy con
  • Kỹ thuật đếm

Các dạng bài Leetcode thường gặp:

  • Đảo ngược chuỗi
  • Chuỗi Palindrome
  • Phát hiện nguyên âm
  • Bài toán đếm sử dụng mảng đếm

1. Vì sao xử lý chuỗi quan trọng?

1.1. 3.1.1. Vì sao xử lý chuỗi quan trọng

1.2. [LC] 3.1.2. Ôn tập về chuỗi với Python

Click to view more

2. Đảo ngược chuỗi sử dụng vòng For

2.1. 3.2.1 Ý tưởng

2.2. 3.2.2. Cách giải quyết

2.3. 3.2.3. Code đảo ngược chuỗi

2.4. [LC] 3.2.4 Phân tích độ phức tạp của thuật toán bên trên

Click to view more

3. Đảo ngược chuỗi sử dụng 2 con trỏ

3.1. 3.3.1. Ý tưởng

3.2. 3.3.2. Giải pháp chi tiết

3.3. [LC] 3.3.3. Kết luận này đúng hay sai

Click to view more

4. Leetcode 345 - Đảo ngược nguyên âm trong chuỗi

4.1. 3.4.1. Leetcode 345 - Đảo ngược nguyên âm trong chuỗi

4.2. 3.4.2. Ý tưởng đảo ngược chuỗi

5. Chuỗi Palindrome

5.1. 3.5.1. Chuỗi Palindrome

5.2. 3.5.2. Cách chứng minh một chuỗi là Palindrome

6. Khái niệm chuỗi con và dãy con

6.1. 3.6.1. Chuỗi con - Substring

6.2. 3.6.2. Dãy con - Subsquence

6.3. 3.6.3. Đếm số lượng chuỗi con

Click to view more

7. Kỹ thuật đếm

7.1. 3.7.1. Giới thiệu kỹ thuật đếm

7.2. 3.7.2. Kỹ thuật đếm sử dụng mảng

7.3. [LC] 3.7.3 Điểm yếu của việc đếm bằng cách sử dụng mảng

Click to view more

7.4. [LC] 3.7.4. Kỹ thuật đếm sử dụng từ điển

Click to view more

7.5. [LC] 3.7.5. Nhận xét 3 cách đếm bằng từ điển

Click to view more

8. Slide bài giảng

8.1. 2.3 Reverse String - v2.pdf

8.2. Leetcode 1 - Two Sum.pdf

9. Bài tập

9.1. Đảo ngược chuỗi

Click to view more

9.2. Leetcode 345 - Reverse Vowels of a String

Click to view more

9.3. Đếm số lượng chuỗi con chỉ có duy nhất một loại chữ

Click to view more

9.4. Leetcode 541 - Reverse String ||

Click to view more

9.5. Leetcode 1347 - Minimum Number of Steps to Make Two Strings Anagram

Click to view more

9.6. Leetcode 125 - Valid Palindrome

Click to view more
1. Vì sao xử lý chuỗi quan trọng?
1.1. 3.1.1. Vì sao xử lý chuỗi quan trọng
1.2. [LC] 3.1.2. Ôn tập về chuỗi với Python
2. Đảo ngược chuỗi sử dụng vòng For
2.1. 3.2.1 Ý tưởng
2.2. 3.2.2. Cách giải quyết
2.3. 3.2.3. Code đảo ngược chuỗi
2.4. [LC] 3.2.4 Phân tích độ phức tạp của thuật toán bên trên
3. Đảo ngược chuỗi sử dụng 2 con trỏ
3.1. 3.3.1. Ý tưởng
3.2. 3.3.2. Giải pháp chi tiết
3.3. [LC] 3.3.3. Kết luận này đúng hay sai
4. Leetcode 345 - Đảo ngược nguyên âm trong chuỗi
4.1. 3.4.1. Leetcode 345 - Đảo ngược nguyên âm trong chuỗi
4.2. 3.4.2. Ý tưởng đảo ngược chuỗi
5. Chuỗi Palindrome
5.1. 3.5.1. Chuỗi Palindrome
5.2. 3.5.2. Cách chứng minh một chuỗi là Palindrome
6. Khái niệm chuỗi con và dãy con
6.1. 3.6.1. Chuỗi con - Substring
6.2. 3.6.2. Dãy con - Subsquence
6.3. 3.6.3. Đếm số lượng chuỗi con
7. Kỹ thuật đếm
7.1. 3.7.1. Giới thiệu kỹ thuật đếm
7.2. 3.7.2. Kỹ thuật đếm sử dụng mảng
7.3. [LC] 3.7.3 Điểm yếu của việc đếm bằng cách sử dụng mảng
7.4. [LC] 3.7.4. Kỹ thuật đếm sử dụng từ điển
7.5. [LC] 3.7.5. Nhận xét 3 cách đếm bằng từ điển
8. Slide bài giảng
8.1. 2.3 Reverse String - v2.pdf
8.2. Leetcode 1 - Two Sum.pdf
9. Bài tập
9.1. Đảo ngược chuỗi
9.2. Leetcode 345 - Reverse Vowels of a String
9.3. Đếm số lượng chuỗi con chỉ có duy nhất một loại chữ
9.4. Leetcode 541 - Reverse String ||
9.5. Leetcode 1347 - Minimum Number of Steps to Make Two Strings Anagram
9.6. Leetcode 125 - Valid Palindrome